为什么不在.spec.template.metadata.labels中更改ReplicaSet影响窗格

时间:2016-04-28 16:25:43

标签: kubernetes

我在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的更改何时影响当前状态,何时不影响?

1 个答案:

答案 0 :(得分:0)

只有在使用该模板标记新副本时,才会显示对模板的更改。模板(副本/选择器)之外的更改将立即生效。如果要优雅地更改PodSpec或现有Pod的标签,您应该查看Deployments的滚动更新功能。