如果您阅读 Kubernetes 的描述——“一个用于自动化容器化应用程序的部署、扩展和管理的开源系统”——您可能会认为开始使用 Kubernetes 是一项令人生畏的壮举。但是,有很多很棒的资源可以使学习这个容器编排系统变得更容易。
在我们深入探讨之前,让我们研究一下 Kubernetes 的起源。在 Unix 世界中,容器已经使用了很长时间,如今,由于 Docker 等项目,Linux 容器非常流行。Google 在 2006 年创建了 Process Containers;当它后来意识到需要一种方法来维护所有这些容器时,它创建了 Borg 作为 Google 的内部项目。许多工具从其用户中涌现出来,包括 Omega,它是通过迭代 Borg 构建的。Omega 将集群状态与集群成员分开维护,从而打破了 Borg 的单体架构。最终,Kubernetes 从 Google 中诞生,现在由 云原生计算基金会 的成员和贡献者维护。
学习 Kubernetes 的方法
如果您想要一个“像给五岁孩子解释一样”的 Kubernetes 指南及其一些原语,请查看“Kubernetes 图解儿童指南”,该指南以 视频 和 PDF 的形式提供,其中有一个可爱的小长颈鹿,代表一个正在寻找家的小型 PHP 应用程序。核心 Kubernetes 原语,如 Pod、复制控制器、服务、卷 和 命名空间 在指南中都有介绍。这是了解 Kubernetes 的原因和方式的好方法。但请注意:它不涵盖 Kubernetes 的网络组件。
您可以通过两个领域开始学习 Kubernetes。第一个领域是维护或操作 Kubernetes 集群本身。第二个领域是部署和维护在 Kubernetes 集群中运行的应用程序。这种区分在学习 Kubernetes 时提供了分隔。要精通 Kubernetes,您应该了解这两者,但是您可以从了解其中一个或另一个开始。
要了解 Kubernetes 内部如何工作,我推荐 Kelsey Hightower 的 Kubernetes 硬核之道。这是一系列关于在零自动化的情况下启动 Kubernetes 的实践实验室。如果您想了解如何搭建构成完整 Kubernetes 集群的所有组件,这就是适合您的路径。
如果您想从将容器化应用程序部署到 Kubernetes 开始,Minikube 是最佳选择。Minikube 是一个帮助您在本地部署 Kubernetes 的工具。您必须能够在主机上运行虚拟机监控程序,但大多数现代设备都可以。您可以在 Linux、macOS 或 Windows 上运行 Minikube,因此天空是无限的,尽管每个操作系统都有不同的方式为 Minikube 设置一切。将 Docker(或 rkt)容器部署到 Minikube 很简单,它可以使您的容器在 Kubernetes 集群中更具弹性
如果在试用 Minikube 后,您觉得它缺少一些组件,我推荐 Minishift 或 CoreOS Tectonic。Minishift 是 Red Hat OpenShift 的 Minikube。OpenShift 具有出色的 UI 和许多使 Kubernetes 更好一点的功能。CoreOS Tectonic 是一个更注重观点、企业就绪的 Kubernetes。幸运的是,CoreOS Tectonic 有一个免费的沙盒版本。CoreOS Tectonic 的优点是网络和监控都内置在这个 Kubernetes 迭代版本中。CoreOS 在 Tectonic 中做出的决策非常周到,这一点显而易见。
立即开始
无论您决定如何开始,现在都是开始学习 Kubernetes 的时候了。现在有很多地方可以部署 Kubernetes,等待已经没有意义了——在确定它是否适合您的用例之前,先试一试。在您部署到 AWS、Google Cloud 或 Azure 之前,请确保您没有浪费时间。
本文经授权转载自 Chris Short 的博客。
1 条评论