首页 > 解决方案 > 当我们扩展 kubernetes 部署并更改其中一个 pod 或容器配置时会发生什么?

问题描述

当我通过创建部署来扩展应用程序时。假设我在 3 个集群上运行 nginx 服务。Nginx 在多个 pod 的容器中运行。如果我在其中一个 pod 中更改 nginx 配置,它是否会传播到所有节点和 pod,因为它在集群中运行并进行了扩展。

标签: kuberneteskubernetes-pod

解决方案


我想在已经说过的内容中添加更多内容。首先,您甚至不应该对由 或Pods管理的ReplicaSet任何更改进行管理。这是提供额外抽象层的对象,它们有责任确保在您的kubernetes 集群中运行特定数量的特定类型。正如提到的控制器跨越集群中的所有节点一样,您的集群由多少个节点组成并不重要。ReplicationControllerDeploymentPods

在单个中所做的更改Pod不仅不会传播到其他地方Pods,而且如果新创建Pod的更改配置崩溃时可能很容易丢失。

请记住,其中一项任务Deployment是确保一定数量Pods的给定类型(在Pod template部分中指定Deployment)始终启动并运行。当您手动重新配置失败Pod时,您的Deployment(实际上ReplicaSet由. 但它如何重新创建它?它是否考虑到您对此类所做的更改?当然不是,它会根据.DeploymentPodPodtemplateDeployment

如果您想对您的Pods一项一项进行更改, kubernetes允许您通过提供所谓的滚动更新机制来做到这一点。 在这里,您可以阅读有关使用ReplicationController的老式方法的信息,该方法不再使用,因为它已被替换DeploymentsReplicaSets但我认为仍然值得一读以掌握这个概念。目前部署是要走的路。关于更新Deployment你可以在这里阅读。请注意,默认更新策略是RollingUpdate确保更改不会一次应用于所有 Pod,而是一个接一个地应用。


推荐阅读