在 Kubernetes 中添加节点后重新分配 pod

clo*_*orz 10 kubernetes

Kubernetes集群添加节点后,pods应该怎么处理?

我的意思是,理想情况下,我希望在新添加的节点上停止并启动其中一些。我是否必须手动选择一些停止并希望它们被安排在新添加的节点上重新启动?

我不关心亲和力,只关心半均匀分布。

也许有一种方法可以让 pod 的数量始终等于节点的数量?

为了举个例子:

我正在使用 juju 在 AWS 上配置小型 Kubernetes 集群。一个师傅,两个工人。这只是一个游乐场。

我的应用程序是 apache 服务 PHP 和静态文件。所以我有一个部署,一个 NodePort 类型的服务和一个使用 nginx-ingress-controller 的入口。

我已经关闭了其中一个工作实例,并且我的应用程序 Pod 在仍然可以工作的实例上重新创建。

然后我重新启动了实例,主人拿起它并在那里启动了 nginx 入口控制器。但是当我尝试删除我的应用程序 pod 时,它们是在继续运行的实例上重新创建的,而不是在重新启动的实例上。

不确定它是否重要,但我没有任何 DNS 设置。刚刚使用来自我的入口的主机值将其中一个实例的 IP 添加到 /etc/hosts。

Luk*_*ler 0

当您添加新节点时,Kubernetes 中会自动重新分配。您可以通过删除单个 Pod 并设置基于主机的反关联策略\xe2\x80\x8b 来强制重新分配单个 Pod。否则 Kubernetes 会更喜欢使用新节点进行调度,从而随着时间的推移实现重新分配。

\n\n

您手动触发重新分发\xe2\x80\x8b 的原因是什么?

\n

  • 我有同样的要求,即在节点上重新分配 Pod。当您按照此处的过程在多个节点上升级 k8s 时:https://kubernetes.io/docs/tasks/administer-cluster/kubeadm-upgrade-1-9 ,最后,您将拥有一个没有任何 Pod 运行的节点守护进程 (4认同)