节点closures后,节点不能在另一个节点上运行

我创build了一个在Node3 172.24.18.125中运行的mysql pod。 但是,在停止Node3中的所有kubernetes服务之后,此pod将在一段时间后消失,而不是在Node1或Node2中运行。 为什么kubernetes master不重新安排在另一个节点的豆荚? 以下是pod和复制控制器的yaml文件。

[root@localhost pods]# kubectl get nodes NAME LABELS STATUS 127.0.0.1 kubernetes.io/hostname=127.0.0.1 Ready 172.24.18.123 database=mysql,kubernetes.io/hostname=172.24.18.123 Ready 172.24.18.124 kubernetes.io/hostname=172.24.18.124 Ready 172.24.18.125 kubernetes.io/hostname=172.24.18.125 Ready YAML file to create mysql pod: apiVersion: v1 kind: Pod metadata: name: mysql labels: name: mysql spec: containers: - resources: limits : cpu: 1 image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD value: welcome ports: - containerPort: 3306 name: mysql mysql-service.yaml apiVersion: v1 kind: Service metadata: labels: name: mysql name: mysql spec: publicIPs: - 172.24.18.120 ports: # the port that this service should serve on - port: 3306 # label keys and values that must match in order to receive traffic for this service selector: name: mysql replicationcontroller.yaml apiVersion: v1 kind: ReplicationController metadata: name: mysql-controller spec: replicas: 2 selector: name: mysql template: metadata: labels: name: mysql spec: containers: - name: mysql image: mysql ports: - containerPort: 3306 

如果它们直接作为豆荚被创build,豆荚不会重新安排到不同的节点。 一个pod只能运行在一个节点上。

复制控制器通过检测正在运行的pod的数量何时发生变化(例如,由于节点失败)并在需要时创build该pod的新副本来为您处理这些细节。

默认情况下,一旦节点没有向主节点报告5分钟,Kubernetes就认为发生故障的节点上的节点已经死亡。 在此之后,如果您的群集是复制控制器的一部分,则控制器应该创build一个将在不同节点上进行调度的新副本。