创建部署时将 pod-template-hash 添加到副本集名称中的确切原因是什么?

2024-06-18

https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment提到一个deployment创建一个replicaSet但附加一个pod-template-hashreplicaSet并且还添加了pod-template-hash as replicaSet的标签。

我最好的猜测是deployment创建多个replicaSets这个哈希确保副本不会重叠。那是对的吗?


正确的,文档说明得非常好:

The pod-template-hash标签由部署控制器添加到 Deployment 创建或采用的每个 ReplicaSet。

此标签确保 Deployment 的子 ReplicaSet 不会 重叠。它是通过散列生成的PodTemplate副本集的 并使用生成的散列作为添加到 ReplicaSet 选择器、Pod 模板标签以及任何现有 Pod 中 ReplicaSet 可能有。

由于多种不同的原因,这是必要的:

  • 当您应用新版本的 Deployment 时,根据部署的配置方式和探测情况,之前的一个/多个 Pod 可能会一直保持运行状态,直到新的一个/多个 Pod 未运行且就绪,然后才会正常终止。所以可能会发生不同 Pod 的情况ReplicaSet(以前的和当前的)同时运行。
  • 可以查阅部署历史记录,如果当前版本停止正常运行(例如,您更改了需要使用的映像,但它却因错误而崩溃),您可能还想回滚到较旧的版本。每个修订版都有自己的 ReplicaSet,可以根据需要进行扩展或缩小,如 中所述docs https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#checking-rollout-history-of-a-deployment
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建部署时将 pod-template-hash 添加到副本集名称中的确切原因是什么? 的相关文章

随机推荐