使用控制器运行 Pod 及定义部署的深入指南
1. 容器镜像与 Pod 基础
容器镜像是 Kubernetes 中运行应用的基础。可以将应用打包到 Docker Hub 上公开可用的容器镜像中,所有与 CRI 兼容的容器运行时都能拉取该镜像并从中运行容器。这样,无论使用何种 Kubernetes 环境,运行应用的方式都是一致的。
Pod 是 Kubernetes 中最小的计算单元。不过,Pod 是一种原始资源,在正常使用中,通常不会直接运行 Pod,而是创建一个控制器对象来管理它。
2. Pod 的局限性与控制器的作用
Pod 本身过于简单,有一定局限性。它是应用的孤立实例,每个 Pod 被分配到一个节点上。如果该节点离线,Pod 就会丢失,且 Kubernetes 不会自动替换它。即便尝试运行多个 Pod 来实现高可用性,也不能保证 Kubernetes 不会将它们都运行在同一个节点上。而且,就算 Pod 分布在多个节点上,也需要手动管理。
这时,控制器就发挥作用了。控制器是 Kubernetes 中管理其他资源的资源。它与 Kubernetes API 协作,监控系统的当前状态,将其与资源的期望状态进行比较,并进行必要的更改。Kubernetes 有很多控制器,其中管理 Pod 的主要控制器是 Deployment,它能解决上述提到的问题。例如,如果一个节点离线导致 Pod 丢失,Deployment 会在另一个节点上创建一个替换的 Pod;如果要扩展 Deployment,可以指定所需的 Pod 数量,Deployment 控制器会将它们分布在多个节点上运行。
以下是 Deployment、Pod 和容器之间的
超级会员免费看
订阅专栏 解锁全文
919

被折叠的 条评论
为什么被折叠?



