如何在Google Compute Engine上为高可用性Kubernetes启用领导者选举?
我试图在GCE上以高可用性模式运行kubernetes,其后instructions,但是我的kube-scheduler.manifest
和kube-controller-manager.manifest
没有在任何主设备上设置标记--leader-elect=true
。如何在Google Compute Engine上为高可用性Kubernetes启用领导者选举?
我在salt templates中挖了一遍,在我看来,没有配置选项来启用它。此外,high-availability proposal建议即使在“非复制模式”下也应该启用标志,但看起来并不如此。
为kube-scheduler和kube-controller-manager启用leader选举的正确方法是什么?有没有办法做到这一点,而不诉诸于modifying the salt tars myself?
high-availability instructions提到启用--leader-elect
标志,但high-availability setup instructions没有解释如何做到这一点。 high-availability proposal doc对领导者选举说了这样的话:“我们将在非复制模式下使用相同的配置来简化部署脚本”,但我无法在盐模板中找到相关证据。
leader-elect
标志的默认值是true
,因此在没有显式配置的情况下应该启用leader leader client。
您可能还希望根据您旋转的主设备数(默认为1
)设置Kubernetes API服务器的apiserver-count
标志。它给大师选举的组件(调度器,控制器管理器)提供了一个关于主人形成的法定数量的提示,因为领导者选举过程使用了Raft共识。
参考文献:
感谢伟大的答案! apiserver-count旗正确地做了什么? –
这决定了主人形成的法定人数的大小。我用解释更新了我的答案。 –