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-hash
以replicaSet
并且还添加了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(使用前将#替换为@)