在 在你的 Raspberry Pi 家庭实验室中运行 Kubernetes 的 5 个理由 中,我解释了你可能想在家中使用 Kubernetes 的原因。这些理由相对随意,并且主要关注结果。除了 Kubernetes 可以做什么之外,还有其他几个很好的理由将 Kubernetes 视为你的个人计算体验中重要的下一步。
1. 它建立在 Linux 的基础上

(Seth Kenlon, CC BY-SA 4.0)
Kubernetes 有一定的声誉。更准确地说,它有几种声誉。对于某些人来说,它是一种名称难以发音的神秘技术。对于另一些人来说,它是一个牧羊犬,帮助他们管理过多的容器。对于其他人来说,它是云的一种操作系统,是有效云开发的有用接口。对于大多数人来说,可能它只是他们从未听说过的后端软件。正如你可能期望的那样,它是所有这些以及更多。
并非每个人都以相同的方式与 Kubernetes 交互,但如果你有系统管理的倾向,你会发现 Kubernetes 只是另一个 Linux 命令。
我有一件 T 恤,上面写着“容器就是 Linux”,这说明了一个显而易见的事实。容器技术使用 cgroups 运行包含应用程序或一组应用程序的最小 Linux 操作系统镜像。从开始到结束,当你选择运行容器时,你就是在选择运行 Linux。虽然 Kubernetes 命令可以在许多平台上运行,但它管理的是 Linux 容器,当你通过终端与 Kubernetes 交互时,这与通常的 Linux 操作一样:命令、选项、参数、语法。运行 kubeadm
或(在 OKD 或 OpenShift 上)oc
命令感觉很熟悉,因为它们的工作方式与你习惯运行的任何其他 Linux 命令一样。最初看起来很陌生的东西很快就会变得自然,任何对在终端花费时间感兴趣的 Linux 用户都可以在 Kubernetes 中找到很多有趣的东西去探索。
2. 灵活
Kubernetes 曾经有点僵化。它基本上只支持一种容器运行时——事实上,至今仍有一个硬编码的 shim 来绕过这种遗留问题。幸运的是,今天的 Kubernetes 已经变得足够灵活,可以满足管理员的各种需求。有 Podman 和 CRI-O 可用作容器引擎,两者都可以与 systemd 集成。(当我告诉你这一切都在 Linux 底层运行时,我是认真的。)你可以选择文件系统、集群大小和结构、监控工具、镜像、编程语言等等。坦率地说,有些人说选择太多了,我通常怀疑再过几年,它就会有足够我需要的选择了。
3. 个人发展
容器是一项有利可图的业务,它们有快速繁殖的习惯。这是设计使然。容器旨在扩展,它们通过生成克隆来扩展。将容器放入组中(称它们为pod),并自动化 pod 生命周期管理的方式。这就是 Kubernetes 的全部,它正在改变服务器的运行方式。
你可能不需要无限可扩展的容器集合,你也可能不需要任何东西来帮助你管理你运行的一个或两个容器。但是,如果你希望从你管理 pod 的能力中获利,那么 Kubernetes 正是你想要的工具。随着越来越多的公司和组织走向全球并拥抱 数字化转型,Kubernetes 正在成为 IT 领域的一项必备技能。如果这是你要走的路,那么现在学习它并熟悉常见问题及其解决方案是一个很好的投资。
4. 让容器变得有意义
你可能还记得几年前,开源项目开始以 容器镜像 的形式分发他们的代码。对于许多人来说,当时这令人费解。没有多少管理员真正 理解容器是什么,或者想象中的容器的边界在哪里,或者如何进入容器,或者为什么数据不能存在于容器内部。
现在,包括开发人员在内的 IT 世界已经习惯了容器的概念。交付到容器对于现代 CI/CD 工作流程 来说是有意义的。然而,对于系统管理员来说,容器的优势是双重的:安装(理论上)比等待发行版更新其软件包更容易,并且容器可以扩展。然而,在你使用 Kubernetes 之前,这两种好处很可能都不会真正显现出来。一旦你开始使用 Kubernetes 和相关工具管理容器,持续交付和扩展能力的好处可能仅仅是你读到过的想法。将容器集成到你管理服务器的方式中,你就会突然明白兴奋点在哪里。

(Seth Kenlon, CC BY-SA 4.0)
最基本的测试使其非常清楚。只需在容器中启动你最喜欢的 Web 服务器,创建一个 pod,然后使用来自 Apache JMeter 的流量冲击你的服务器,并观察容器的响应。
5. 云原生
如果你从事的开发工作多于系统管理,Kubernetes 为最容易成为所有目标的应用提供了出色的平台:Web 应用程序。我们现在都使用 Web 应用程序,即使大多数人只是将它们视为“网站”。Web 拥有庞大的用户群(至少可以这么说),因此通过浏览器提供开源应用程序是有意义的。有一些很棒的开源应用程序可以通过网络运行,其中许多应用程序以容器的形式交付,以提供简单的安装和一致的用户体验。
奖励:它很有趣
还记得你刚接触 Linux 的时候吗?对于某些人来说,那可能已经是几十年前的事了,而对于另一些人来说,它仍然即将到来。然而,对于我们所有人来说,学习新事物可能是一个有趣的挑战。如果你已经到了安装 Linux 更多的是麻烦而不是挑战的地步,你可能想尝试在你的杂物间里构建一个 Kubernetes 集群。它将重新向你介绍你已经忘记的各种概念。破解纯文本(特别是 YAML)配置文件,配置网络接口和网络,路由流量,仔细研究一个后端优于另一个后端的优点和缺点,在 --dry-run
测试之后运行 --dry-run
,试探性地按下回车键,看看你是否一切都正确。老实说,Kubernetes 真的很有趣。
如果你想构建自己的基础设施,没有什么比构建自己的 Kubernetes 集群更让人兴奋的了。一个全新的世界将向你敞开。你很快就会成为一名云架构师,完善你的开放云,在容器中安装令人惊叹的开源 Web 应用程序,甚至可能向你的家人和朋友提供访问权限。
你成为了解决方案。这非常令人满意。
探索 Kubernetes
Kubernetes 最初可能看起来遥不可及。它是新的,有点可怕,更糟糕的是,它显然需要云。但是,有一些入门方法。
首先,安装 Minikube 或 Minishift。这两者都允许你在你的个人计算机上运行 Kubernetes 的本地实例。它不如构建一个集群并向你的朋友开放那样令人满意,但它是熟悉环境、命令和工具包的好方法,而且很安全。
一旦你为真正的集群做好了准备,请阅读 Chris Collins 的文章 用 Raspberry Pi 构建 Kubernetes 集群。之后,下载我们的免费电子书 在你的 Raspberry Pi 家庭实验室上运行 Kubernetes。在你意识到之前,你也会发现自己穿着 Kubernetes T 恤。
2 条评论