Kubernetes 基础知识:学习如何首先驾驶

不要再关注新项目,而是专注于获得 Kubernetes 翻斗车商业驾驶执照。
329 位读者喜欢这篇文章。

在本系列的头两篇文章中,我解释了 Kubernetes 如何像翻斗车,以及理解像 Kubernetes(以及翻斗车、起重机等)这样优雅、专业的工具总是存在学习曲线。本文是关于下一步:学习如何驾驶。

最近,我在 Reddit 上看到了一个关于必要的 Kubernetes 项目的帖子。人们似乎渴望了解开始使用 Kubernetes 应该学习的最低限度的知识。“驾驶翻斗车”的比喻有助于确定问题,使其保持在正轨上。帖子中的某人提到,除非必要,否则你不应该运行自己的注册表,因此人们已经开始尝试驾驶 Kubernetes 而不是构建它的想法。

API 是 Kubernetes 的引擎和变速器。就像翻斗车的方向盘、离合器、油门和刹车踏板一样,你用来构建应用程序的 YAML 或 JSON 文件是与机器的主要接口。当你刚开始学习 Kubernetes 时,这应该是你的主要重点。了解你的控件。不要被所有最新和最棒的项目分心。当你只是学习驾驶时,不要尝试实验性的翻斗车。相反,专注于基础知识。

定义状态和实际状态

首先,Kubernetes 基于定义状态和实际状态的原则工作。

Defined state and actual state

人类(开发人员/系统管理员/运维人员)使用他们提交给 Kubernetes API 的 YAML/JSON 文件指定定义状态。然后,Kubernetes 使用控制器来分析 YAML/JSON 中定义的新状态与集群中实际状态之间的差异。

在上面的示例中,复制控制器看到用户指定了三个 Pod,但只有一个 Pod 在运行,因此调度另外两个。如果你登录 Kubernetes 并手动杀死其中一个 Pod,它会启动另一个 Pod 来替换它——一遍又一遍。Kubernetes 不会停止,直到实际状态与定义状态匹配。这非常强大。

原语

接下来,你需要了解可以在 Kubernetes 中指定哪些原语。

Kubernetes primitives

不仅仅是 Pod;还有 Deployment、Persistent Volume Claim、Service、路由等。使用 Kubernetes 平台 OpenShift,你可以添加构建和 BuildConfig。你可能需要一天左右的时间才能熟练掌握这些原语中的每一个。然后,随着你的用例变得更加复杂,你可以更深入地研究。

将开发者原生环境映射到传统 IT 环境

最后,开始思考这如何映射到你在传统 IT 环境中所做的事情。

Mapping developer-native to traditional IT environments

用户一直试图解决业务问题,即使是技术问题。从历史上看,我们使用诸如剧本之类的东西将业务逻辑与使用单一语言的 IT 系统集联系起来。这对于运维人员来说一直很棒,但是当你尝试将其扩展到开发人员时,它会变得更加棘手。

直到 Kubernetes,我们才能够真正以开发者原生方式指定一组 IT 系统应该如何表现和交互。如果你仔细想想,我们正在扩展以非常便携和声明式的方式管理存储、网络和计算资源的能力,通过我们在 Kubernetes 中编写的 YAML/JSON 文件,但它们始终映射回某处的“真实”资源。我们只是不必在开发者模式下担心它。

因此,不要再关注 Kubernetes 生态系统中的新项目,而是专注于驾驶它。在下一篇文章中,我将分享一些可以帮助你驾驶 Kubernetes 的工具和工作流程。

接下来阅读什么
User profile image.
Scott McCarty 在 Red Hat 担任容器子系统团队的技术产品经理,该团队在 OpenShift 容器平台和 Red Hat Enterprise Linux 中实现了关键产品功能。关注领域包括容器运行时、工具和镜像。

评论已关闭。

Creative Commons 许可协议本作品根据 Creative Commons 署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.