由于各种原因,工作节点与主节点断开连接的情况会经常发生。在这种情况下,其实有很多问题,例如,主节点是否删除了在无法连接的节点上运行的 Pod?Kubernetes 控制器的行为如何?Pod 是否在工作节点上继续运行?简而言之,我们想知道当节点变得不可访问时,Kubernetes 系统行为是什么样子的?

定义:在 Kubernetes 中,无法连接的节点称为隔离节点(partitioned node)。

为了具体了解,让我们创建一个隔离节点案例并了解其行为。

示例集群

示例集群具有一个主节点(master node)和 3 个工作节点(worker node)。这里创建了具有 2 个副本的 Nginx Deployment。这些副本在不同的节点上运行:kind-worker2 和 kind-worker3。图 1 展示了示例集群的状态:

 图1:示例集群的状态

创建一个隔离节点

创建一个隔离节点的简单方法是删除节点的 IP 地址,即 kind-worker2。图 2 展示了必要的步骤: