我正在设计一个带有HA和负载分配的解决方案。我有一个问题,关于如何在工作节点和主节点之间建立关系以支持HA(容错)和负载分配。
我理解工作节点由主节点管理,这意味着在构建工作节点期间,我们使其加入主节点以建立信任并与主节点链接。
所以现在如果我想在主节点上为集群构建HA:
去工作者节点:
所以我的问题是:
在3个主节点上,我们应该有一个控制器吗?
我不确定你在说什么控制器(A Kubernetes控制器?kube-controller-manager?)。总之,所有主节点都具有相同的Kubernetes组件:kube-apiserver,kube-scheduler,kube-controller-manager,kube-proxy,runtime等。
我们可以将工作节点链接到3个主节点吗?如果是,那有什么好处?使用loadbalancer / VIP不是更好吗?在那种情况下,我们还有5000个节点的限制吗?或者它可以达到5000X3工作节点?
如果你有3个主设置,一个是活动的(领导者)而其他人处于待机状态,那么只有一个领导者通过配置的quorum为这些组件建立,所以不是你可以扩展5000x3节点,5000的限制仍然是申请,因为你总是和领导说话。
我们可以像在etcd中那样拥有一个主动 - 被动的API服务器集群吗?即使我们只是在初始化阶段使用一组配置就能做到这一点?
这就是它的工作方式。在3个主设置中,有1个有效,2个被动,在5个主设置中有1个有效,5个被动。
希望能帮助到你!
是的我说的是kube控制管理器。现在我知道它将以领导者奴隶模式运行,我的意思是kube控制管理器以及kube计划。所以只有一位大师领导那些。
是的我也在考虑它不会超过5000(主节点的限制)。
我不确定kube api服务器是否在一个领导者从属集群中运行,这就是为什么我认为我们需要在它上面设置一个解决方案来隐藏真正的api服务器ip或dns。
一位同事告诉我,我们可以将多个api服务器连接到同一个工作节点,我自己没有尝试过,但我真的怀疑它会工作,我仍然相信DNS服务器的选项就像Ruote 53或者像nigix这样的代理服务器甚至是作为F5的硬件平衡器应该是让工作人员与主动主服务器通信而不依赖于它的可能选项。