在《在Raspberry Pi homelab上运行Kubernetes的5个理由》中,我解释了为什么你可能想在家里使用Kubernetes。这些理由相对来说比较随意,而且它们大多集中在结果上。除了Kubernetes能做什么,还有其他几个很好的理由,可以把Kubernetes看成是你个人计算经验的下一个重要步骤。
1.它是建立在Linux的基础上的
Kubernetes有一定的声誉。更准确地说,它有几种声誉。对于一些人来说,它是一项神秘的技术,有一个叫不出名字的名字。对另一些人来说,它是一只牧羊犬,帮助他们牧养过量的容器。对其他人来说,它是一种云的操作系统,是有效的云开发的有用接口。而对大多数人来说,可能是他们甚至从未听说过的后端软件。正如你所期望的,它是所有这些东西,甚至更多。
不是每个人都以同样的方式与Kubernetes互动,但如果你有系统管理的倾向,你会发现Kubernetes_只是另一个Linux命令_。
我有一件T恤,上面写着 "容器是Linux",这句话说的是,仔细想想,很明显。容器技术使用cgroups来运行包含一个或一组应用程序的最小Linux操作系统的图像。从始至终,当你选择运行一个容器时,你就选择了运行Linux。虽然Kubernetes命令在许多平台上运行,但它是在管理Linux容器,当你通过终端与Kubernetes互动时,它是Linux的常规业务:命令、选项、args、语法。运行kubeadm 或(在OKD或OpenShift上)oc 命令感觉很熟悉,因为它们像你习惯运行的任何其他Linux命令一样工作。一开始看起来很陌生,但很快就会觉得很自然,任何有兴趣花时间在终端的Linux用户都可以在Kubernetes中找到很多有趣的东西来探索。
2.2.灵活
Kubernetes过去有点僵化。它基本上只支持一个容器的运行时间--事实上是如此严格,以至于至今还有一个硬编码的垫片来绕过这个传统。幸运的是,今天的Kubernetes已经变得足够灵活,可以满足管理员的各种需求。有Podman和CRI-O作为容器引擎,它们都可以与systemd集成。你可以选择文件系统、集群大小和结构、监控工具、图像、编程语言,以及更多。坦率地说,有些人说选择_太多_,这时我通常会怀疑,再过几年,它的选择对我来说就足够了。
3.个人发展
容器是一个硕果累累的行业,它们有迅速繁殖的习惯。这就是设计。容器是用来扩展的,它们通过产生克隆来扩展。把容器粘成组(称为_pod_),并自动管理pod的生命周期。这就是Kubernetes的全部内容,它正在改变服务器的运行方式。
你可能不需要一个可无限扩展的容器集合,你也可能不需要任何东西来帮助你管理你所运行的一两个容器。然而,如果你想从你管理豆荚的能力中获利,那么Kubernetes正是你想要的工具。随着越来越多的公司和组织走向全球,拥抱数字化转型,Kubernetes正在成为IT行业的一项必备技能。如果这是你要走的路,那么现在学习它并熟悉常见问题及其解决方案是一项不错的投资。
4.让容器有意义
你可能还记得几年前,当开源项目开始将他们的代码作为容器镜像发布时。对许多人来说,这在当时是令人费解的。没有多少管理员真正理解什么是容器,或者想象中的容器的边界在哪里,或者如何进入容器,或者为什么数据不能住在容器里。
现在,IT世界--包括开发人员--对容器的概念感到很舒服。在现代CI/CD工作流程中,交付给容器是有意义的。不过,对于系统管理员来说,容器的优势有两个方面:安装(理论上)比等待发行版更新其软件包要容易,而且容器可以扩展。然而,在你使用Kubernetes之前,这些好处很可能都没有真正体现出来。一旦你开始用Kubernetes和相关工具管理容器,持续交付和扩展能力的好处可能只是你读到的想法。把容器整合到你管理服务器的方式中,你就会突然明白兴奋是怎么回事。
最基本的测试就很清楚了。只要在容器中启动你最喜欢的网络服务器,创建一个pod,然后用Apache JMeter的流量冲击你的服务器,观察容器的反应。
5.云原生
如果你做的是开发而不是系统管理,那么Kubernetes为很容易成为最大目标的东西提供了一个很好的平台:网络应用。我们现在都在使用网络应用程序,尽管大多数人只是认为它们是 "网站"。网络拥有巨大的用户群(至少可以这么说),所以通过浏览器提供开源应用是有意义的。有一些伟大的开源应用程序通过网络运行,其中许多是作为容器交付的,以提供简单的安装和一致的用户体验。
奖励:它很有趣
还记得你刚接触Linux的时候吗?对有些人来说,那可能是几十年前的事了,而对另一些人来说,它仍然在拐角处。不过,对我们所有人来说,学习新东西可以是一个有趣的挑战。如果你已经达到了这样的程度,即Linux的安装与其说是一个挑战,不如说是一个麻烦,你可能想尝试在你的扫帚柜里建立一个Kubernetes集群。这将使你重新认识各种你已经忘记的概念。黑进纯文本(特别是YAML)的配置文件,配置网络接口和网络,路由流量,仔细研究一个后端比另一个后端的优势和劣势,运行--dry-run ,经过--dry-run 测试,试探性地按下返回键,看看你是否得到了一切。说实话,Kubernetes只是好玩。
如果你想建立自己的基础设施,没有什么比建立自己的Kubernetes集群更有意义的了。一个全新的世界将向你打开。你很快就会成为一个云架构师,完善你的开放云,在容器中安装惊人的开源网络应用,甚至可能向你的家人和朋友提供访问。
你成为解决方案。这是非常令人满意的。
探索Kubernetes
Kubernetes起初可能看起来遥不可及。它是新的,有点吓人,最糟糕的是,它显然需要一个云。然而,有几种方法可以开始使用。
首先,安装Minikube或Minishift。这两者都允许你在个人电脑上运行一个Kubernetes的本地实例。这并不像建立一个集群并将其开放给你的朋友那样令人满意,但这是一个熟悉景观、命令和工具包的伟大、安全的方式。
一旦你准备好做真正的事情,请阅读Chris Collins的文章《用Raspberry Pi建立一个Kubernetes集群》。之后,下载我们的免费电子书在你的Raspberry Pi家庭实验室上运行Kubernetes。在你知道之前,你会发现自己也会穿上Kubernetes的T恤衫。