我在yaml文件中定义了ReplicaSet
,用于创建2个pod(副本)。我的理解是,spec
ReplicaSet
部分的变化将被解释为最终将应用于现实世界的所需状态的变化。例如,用以下内容修补副本数量:
curl --request PATCH \
--header 'Content-Type: application/strategic-merge-patch+json' \
--data '{"spec":{"replicas":3}}' \
http://localhost:8080/apis/extensions/v1beta1/namespaces/default/replicasets/hello-v2
会导致播客数量发生变化。但是,如果我修补标签以添加标签:
curl --request PATCH \
--header 'Content-Type: application/strategic-merge-patch+json' \
--data '{"spec": {"template": {"metadata":{"labels":{"active":"true"}}}}}' \
http://localhost:8080/apis/extensions/v1beta1/namespaces/default/replicasets/hello-v2
我不认为这种变化发生在现有的pod上。新窗格(例如通过缩放ReplicaSet do 创建包含新标签。
对spec
的更改何时影响当前状态,何时不影响?
答案 0 :(得分:0)
只有在使用该模板标记新副本时,才会显示对模板的更改。模板(副本/选择器)之外的更改将立即生效。如果要优雅地更改PodSpec或现有Pod的标签,您应该查看Deployments的滚动更新功能。