【问题标题】:Why doesn't change in .spec.template.metadata.labels for ReplicaSet impact pods为什么 ReplicaSet 影响 pod 的 .spec.template.metadata.labels 没有变化
【发布时间】:2016-04-29 04:24:06
【问题描述】:

我在 yaml 文件中定义了一个 ReplicaSet,该文件用于创建 2 个 pod(副本)。我的理解是ReplicaSetspec 部分的变化将被解释为最终将应用于现实世界的所需状态的变化。例如,PATCHing 副本的数量:

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

导致 pod 数量发生变化。但是,如果我修补标签以添加标签:

 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 不会发生这种变化。新的 pod(例如通过缩放 ReplicaSet 创建的 do 包含新标签。

spec 的更改何时会影响当前状态,何时不会?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多