在 Linux 家庭实验室中运行 Kubernetes 的另外 5 个理由
Kubernetes 的优势不仅在于它可以做什么,还在于知道它可以为您做什么。
在 Raspberry Pi 家庭实验室上运行 Kubernetes 的 5 个理由中,我解释了为什么您可能想在家中使用 Kubernetes。这些原因相对随意,而且大多关注结果。除了 Kubernetes 的功能之外,还有其他几个充分的理由将 Kubernetes 视为个人计算体验的重要下一步。
1.它建立在Linux的基础上
(塞思·肯伦,CC BY-SA 4.0)
Kubernetes有一定的知名度。更准确地说,它有几个声誉。对于某些人来说,这是一项神秘的技术,其名字也难以发音。对于其他人来说,它是一只牧羊犬,帮助他们放牧过多的集装箱。对于其他人来说,它是一种云操作系统,是有效云开发的有用接口。对于大多数人来说,可能这是他们从未听说过的后端软件。正如您所预料的,它包含所有这些内容,甚至更多。
并非每个人都以相同的方式与 Kubernetes 交互,但如果您倾向于系统管理,您会发现 Kubernetes 只是另一个 Linux 命令。
我有一件 T 恤,上面写着“容器就是 Linux”,经过反思,这句话是显而易见的。容器技术使用 cgroup 来运行包含一个应用程序或一组应用程序的最小 Linux 操作系统的映像。从开始到结束,当您选择运行容器时,您就是在选择运行 Linux。虽然 Kubernetes 命令在许多平台上运行,但它正在管理 Linux 容器,当您通过终端与 Kubernetes 交互时,它的 Linux 业务一切如常:命令、选项、参数、语法。运行 kubeadm
或(在 OKD 或 OpenShift 上)oc
命令感觉很熟悉,因为它们的工作方式与您习惯运行的任何其他 Linux 命令类似。一开始看起来很陌生的东西很快就会变得自然,任何有兴趣在终端上花时间的 Linux 用户都可以在 Kubernetes 中找到很多有趣的东西来探索。
2. 灵活
Kubernetes 曾经有点僵化。它本质上支持一个容器运行时,事实上,它非常严格,以至于今天有一个硬编码的填充程序来绕过这一遗留问题。幸运的是,如今 Kubernetes 已经变得足够灵活,可以满足管理员的多种不同需求。 Podman 和 CRI-O 可用作容器引擎,两者都可以与 systemd 集成。 (当我告诉你底层都是 Linux 时,我的意思是我所说的。)你可以选择文件系统、集群大小和结构、监控工具、图像、编程语言等等。坦率地说,有些人说选择太多,这通常是当我怀疑再过几年,它就会为我提供足够的选择。
3. 个人发展
容器是一项硕果累累的产业,而且它们具有快速繁殖的习惯。这是设计使然。容器旨在扩展,并且它们通过生成克隆来扩展。将容器分组(称为pod),并自动管理 Pod 生命周期。这就是 Kubernetes 的真正含义,它正在改变服务器的运行方式。
您可能不需要无限可扩展的容器集合,并且您可能不需要任何东西来帮助您管理您运行的一两个容器。然而,如果您希望从争夺 Pod 的能力中获利,那么 Kubernetes 正是您想要的工具。随着越来越多的公司和组织走向全球并拥抱数字化转型,Kubernetes 正在成为 IT 领域的必备技能。如果您正在走这条路,那么现在就学习它并熟悉常见问题及其解决方案是一项很好的投资。
4. 让容器变得有意义
您可能还记得几年前,开源项目开始将其代码作为容器映像分发。对于很多人来说,当时都感到很困惑。没有多少管理员真正理解容器是什么,或者想象中的容器的边界在哪里,或者如何进入容器,或者为什么数据不能存在于容器内。
现在,IT 界(包括开发人员)对容器的概念感到满意。交付到容器对于现代 CI/CD 工作流程来说才有意义。不过,对于系统管理员来说,容器的优点是双重的:安装(理论上)比等待发行版更新其软件包更容易,而且容器可以扩展。然而,在您使用 Kubernetes 之前,这些好处很可能都不会真正体现出来。一旦您开始使用 Kubernetes 和相关工具管理容器,持续交付的好处和扩展能力可能只是您读过的想法。将容器集成到您管理服务器的方式中,您会突然明白其中的兴奋之处。
(塞思·肯伦,CC BY-SA 4.0)
最基本的测试已经很清楚了。只需在容器中启动您最喜欢的 Web 服务器,创建一个 Pod,然后使用来自 Apache JMeter 的流量访问您的服务器,然后观察容器的响应。
5.云原生
如果您进行的开发工作多于系统管理,那么 Kubernetes 为很容易成为最大目标的 Web 应用程序提供了一个出色的平台。我们现在都使用网络应用程序,尽管大多数人只是将它们视为“网站”。网络拥有非常重要的用户群(至少可以这么说),因此通过浏览器提供开源应用程序是有意义的。有一些很棒的开源应用程序可以通过网络运行,其中许多应用程序作为容器提供,以提供轻松的安装和一致的用户体验。
奖励:这很有趣
还记得您刚刚接触 Linux 的时候吗?对于某些人来说,这可能是几十年前的事了,而对于另一些人来说,它仍然指日可待。然而,对于我们所有人来说,学习新东西可能是一个有趣的挑战。如果您认为 Linux 安装更像是麻烦而不是挑战,您可能想尝试在您的杂物间构建 Kubernetes 集群。它将向您重新介绍您忘记的各种概念。破解纯文本(特别是 YAML)配置文件、配置网络接口和网络、路由流量、研究一个后端相对于另一个后端的优缺点、在 之后运行
测试,暂时按回车键看看是否一切都正确。老实说,Kubernetes 很有趣。--dry-run
--dry-run
如果您想构建自己的基础设施,没有什么比构建自己的 Kubernetes 集群更好的了。一个全新的世界将会向你敞开。您很快就会成为一名云架构师,完善您的开放云,在容器中安装令人惊叹的开源 Web 应用程序,甚至可能为您的家人和朋友提供访问权限。
你成为解决方案。这是非常非常令人满意的。
探索 Kubernetes
Kubernetes 乍一看似乎遥不可及。它是新的,有点可怕,而且最糟糕的是,它显然需要云。但是,有几种方法可以开始。
首先,安装 Minikube 或 Minishift。这两个都允许您在个人计算机上运行 Kubernetes 的本地实例。它不像构建集群并向朋友开放那样令人满意,但它是熟悉环境、命令和工具包的一种很好、安全的方法。
一旦您准备好真正的事情,请阅读 Chris Collins 的文章使用 Raspberry Pi 构建 Kubernetes 集群。之后,下载我们的免费电子书《在 Raspberry Pi 家庭实验室上运行 Kubernetes》。不知不觉中,您会发现自己也穿着 Kubernetes T 恤。