我一直试图弄清楚当Kubernetes master在只有一个master的集群中失败时会发生什么。如果发生这种情况,Web请求是否仍会被路由到pod,或者整个系统是否只是关闭了?
根据构建于Kubernetes(https://docs.openshift.com/enterprise/3.2/architecture/infrastructure_components/kubernetes_infrastructure.html)之上的OpenShift 3文档,如果主服务器出现故障,节点将继续正常运行,但系统将无法管理容器。对于香草Kubernetes来说这是一样的吗?
答案 0 :(得分:32)
我的理解是主人运行API,现在(从1.3开始?)管理底层云基础架构。当它处于脱机状态时,API将处于脱机状态,因此群集不再是群集,而是此期间的一堆ad-hoc节点。群集将无法响应节点故障,创建新资源,将pod移动到新节点等。直到主服务器重新联机。
但是,在任何情况下,应用程序的生命将继续正常,除非重新启动节点,或者在此期间出现某种严重故障,因为TCP / UDP服务,负载平衡器,DNS,仪表板等。应该都继续运作。
如果重新启动节点,则在主服务器重新联机之前,DNS查询可能无法正确解析。
如果您想自己测试一下,我建议您kubeadm-dind-cluster或kind。
答案 1 :(得分:2)
没有主服务器的Kubernetes集群就像一家没有管理中心的公司。
除Manager(主节点)以外,没有其他人可以指示工人(k8s组件)
(即使您,集群的所有者,也只能指示Manager)
一切正常。直到工作完成或有事情停止为止。(因为主节点在分配工作后就死了)
由于没有经理为他们重新分配任何工作,因此工人们将等待,直到经理回来。
最佳做法是为集群分配多个管理者(主)。