配置复制控制器时如何需要每个min/kublet一个pod?

win*_*n j 3 labels kubernetes

我有4个节点(kubelets)配置了标签role=nginx

master ~ # kubectl get node
NAME          LABELS                                          STATUS
10.1.141.34   kubernetes.io/hostname=10.1.141.34,role=nginx   Ready
10.1.141.40   kubernetes.io/hostname=10.1.141.40,role=nginx   Ready
10.1.141.42   kubernetes.io/hostname=10.1.141.42,role=nginx   Ready
10.1.141.43   kubernetes.io/hostname=10.1.141.43,role=nginx   Ready
Run Code Online (Sandbox Code Playgroud)

我修改了复制controller并添加了这些行

spec:
  replicas: 4
  selector:
    role: nginx
Run Code Online (Sandbox Code Playgroud)

但是当我启动它时,我在一台主机上获得了2个pod.我想要的是每台主机上有1个pod.我错过了什么?

Rob*_*ley 7

在DaemonSet可用之前,您还可以指定pod使用主机端口并将复制控制器中的副本数设置为大于节点数的值.主机端口约束将允许每个主机只有一个pod.

  • 我说"技术上正确",因为这是一种反模式.在大多数情况下,您不需要安排每个节点一个,但如果没有完全转储您的应用程序架构,很难说更多:)我们通常鼓励人们不要考虑节点 - 只考虑您的应用程序及其如何自然想要组织起来. (2认同)