没有 master 的 Kubernetes 节点

Kubernetes node without master

集群由一个主节点和一个工作节点组成。如果 master 关闭并且 worker 重新启动,则不会在启动时启动任何工作负载(部署)。如何以及是否有可能让工人在没有主人的情况下恢复最后的状态?

Kubernetes 1.18.3

在工作节点上安装了:kubelet、kubectl、kubeadm

理想情况下,您应该有多个(通常是奇数,如 3 或 5)节点作为主节点,并通过 LoadBalancer 从工作节点访问。

状态存储在 ETCD 中,工作节点通过 API 服务器访问它。因此,如果没有主节点 运行,工作人员就无法知道所需的状态。

虽然不推荐你但是可以使用 static pod 作为潜在的解决方案 here.Static Pods 由特定节点上的 kubelet 守护进程直接管理,没有 API服务器观察由控制平面(例如 Deployment )管理的 them.Unlike Pods,而不是 kubelet 监视每个静态 Pod(并在它崩溃时重新启动它)。

使用静态 pod 的警告是因为那些 pods 不依赖于 API 服务器因此静态 Pods 不能用 kubectl 或其他 Kubernetes API 客户端管理.