kubernetes节点关联需要pod重启,即使pod已满足节点关联中的规则

时间:2017-12-14 04:26:33

标签: kubernetes affinity recreate

我有一个正在运行的pod(pod-1),从k8s部署(deploy-1)部署到k8s node-1上。总有一天,我想修补节点亲缘关系到这个部署。例如,目标节点必须具有标签' data = allowed'。

我的步骤:

  1. 添加标签' data = allowed'首先是node-1
  2. 将节点关联性定义修补为deploy-1
  3. 我的期望是pod-1不应该被k8s重新安排,因为它已经在node-1上,它已经符合节点关联性规则(步骤1)。但结果是pod-1被重新创建,尽管仍然在节点1上。

    如果生活pod /部署符合新定义的节点关联规则,是否有任何配置可以阻止重新创建?感谢。

1 个答案:

答案 0 :(得分:0)

由于您希望通过向部署添加新标签来更改群集状态,这意味着您所需的状态已更改,因此,k8s确保当前状态===所需状态。这是基本设计。

为了利用上述功能,我们需要使用声明式方法而不是命令式方法。

例如,最好在k8s群集中使用应用操作而不是创建操作。 现在如果您希望更改或修改k8s资源中的其他字段,它会确保依赖字段不会更改或重新启动容器或外部IP。

我已添加了进一步研究的参考资料。

kubectl-apply-vs-kubectl-create

object-management/