如果我在 Kubernetes 主节点上执行 sudo 重启,Kubernetes 是否会智能地将自身从集群中清除?
假设我有一个 Web 服务正在运行一个 Pod,而这个 Pod 恰好落在主节点上。如果我要“sudo 重启”主节点,它会在它死机前告诉另一个节点启动一个副本吗?
答案1
这不是 Kubernetes 的预期行为。实际上,K8s 将主节点表示为控制平面对于所有集群管理的操作。每个节点上的主要贡献者是:库贝莱特,kube-proxy,以及容器运行软件(Docker、cri-o等)。
每当您希望在特定节点(主节点、工作节点)上重新启动操作系统时,K8s 集群引擎都不会意识到该操作,并且它会将所有与集群相关的事件保存在远程控制计算机系统键值存储,备份最新数据。一旦你希望仔细准备集群节点重启,你可能需要调整维护在此节点上执行作业,以便将其从调度中排出并正常终止所有现有 Pod。
如果你在定义的一组 K8s 资源中编写任何相关的副本, 然后复制控制器保证每个可用节点上同时运行指定数量的 Pod 副本。如果 Pod 未通过健康检查、被删除或终止,它会重新生成 Pod,以匹配所需的副本。