在本系列的头两篇文章中,我解释了 Kubernetes 如何像翻斗车,以及理解像 Kubernetes(以及翻斗车、起重机等)这样优雅、专业的工具总是存在学习曲线。本文是关于下一步:学习如何驾驶。
最近,我在 Reddit 上看到了一个关于必要的 Kubernetes 项目的帖子。人们似乎渴望了解开始使用 Kubernetes 应该学习的最低限度的知识。“驾驶翻斗车”的比喻有助于确定问题,使其保持在正轨上。帖子中的某人提到,除非必要,否则你不应该运行自己的注册表,因此人们已经开始尝试驾驶 Kubernetes 而不是构建它的想法。
API 是 Kubernetes 的引擎和变速器。就像翻斗车的方向盘、离合器、油门和刹车踏板一样,你用来构建应用程序的 YAML 或 JSON 文件是与机器的主要接口。当你刚开始学习 Kubernetes 时,这应该是你的主要重点。了解你的控件。不要被所有最新和最棒的项目分心。当你只是学习驾驶时,不要尝试实验性的翻斗车。相反,专注于基础知识。
定义状态和实际状态
首先,Kubernetes 基于定义状态和实际状态的原则工作。

人类(开发人员/系统管理员/运维人员)使用他们提交给 Kubernetes API 的 YAML/JSON 文件指定定义状态。然后,Kubernetes 使用控制器来分析 YAML/JSON 中定义的新状态与集群中实际状态之间的差异。
在上面的示例中,复制控制器看到用户指定了三个 Pod,但只有一个 Pod 在运行,因此调度另外两个。如果你登录 Kubernetes 并手动杀死其中一个 Pod,它会启动另一个 Pod 来替换它——一遍又一遍。Kubernetes 不会停止,直到实际状态与定义状态匹配。这非常强大。
原语
接下来,你需要了解可以在 Kubernetes 中指定哪些原语。

不仅仅是 Pod;还有 Deployment、Persistent Volume Claim、Service、路由等。使用 Kubernetes 平台 OpenShift,你可以添加构建和 BuildConfig。你可能需要一天左右的时间才能熟练掌握这些原语中的每一个。然后,随着你的用例变得更加复杂,你可以更深入地研究。
将开发者原生环境映射到传统 IT 环境
最后,开始思考这如何映射到你在传统 IT 环境中所做的事情。

用户一直试图解决业务问题,即使是技术问题。从历史上看,我们使用诸如剧本之类的东西将业务逻辑与使用单一语言的 IT 系统集联系起来。这对于运维人员来说一直很棒,但是当你尝试将其扩展到开发人员时,它会变得更加棘手。
直到 Kubernetes,我们才能够真正以开发者原生方式指定一组 IT 系统应该如何表现和交互。如果你仔细想想,我们正在扩展以非常便携和声明式的方式管理存储、网络和计算资源的能力,通过我们在 Kubernetes 中编写的 YAML/JSON 文件,但它们始终映射回某处的“真实”资源。我们只是不必在开发者模式下担心它。
因此,不要再关注 Kubernetes 生态系统中的新项目,而是专注于驾驶它。在下一篇文章中,我将分享一些可以帮助你驾驶 Kubernetes 的工具和工作流程。
评论已关闭。