首页 > 解决方案 > Kubernetes 集群行为

问题描述

今天我用 3 个运行 Redhat Linux 8.0 的 VMS 设置了 Kubernetes 集群。我也能够部署服务和 Pod,但考虑到 Pod 托管在节点/工作人员而不是主服务器上,我无法理解主服务器的角色,这是正确的吗?

我的集群:

服务器:大师

Serverthree:工作节点

Serverfour:工作节点

我从这里部署了示例服务(带有 3 个副本)

我看到所有三个 pod 都在运行,但“1”在我的主节点 serverone 上运行。

hello-kubernetes-594f6f475f-hkn85            Running   serverone

hello-kubernetes-594f6f475f-mct2r            Running   serverfour

hello-kubernetes-594f6f475f-vjchd            Running   serverfour

知道为什么我看到 POD 在主节点上运行吗?

我的集群技术详情....

NAME          STATUS     ROLES     AGE    VERSION

serverfour    Ready      worker4   40m    v1.18.3

serverone     Ready      master    3d3h   v1.18.3

serverthree   NotReady   worker3   20h    v1.18.3

在此处输入图像描述

标签: kubernetesnodescluster-computingmaster

解决方案


通常,kubernetes 集群部署工具将主节点标记为Unschedulable防止调度程序将 pod 放置到主节点上。但是当以下所有条件都为真时,Pod 可能会被安排到主节点

  1. 主节点有Unschedulable: false标志。您可以通过使用描述节点来检查这一点kubectl describe node serverone
  2. 它没有任何taints效果NoSchedule
  3. 如果它有污点(如第 2 条所述),但您tolerations在 pod 规范中提到了这些taints.

更多关于污点和容忍在这里


推荐阅读