没有set a controlPlaneEndpoint 不可能加入主节点:



但是,如果您改为加入一个工作节点(即不使用--control-plane),那么它不仅会知道集群中的其他节点,而且还会知道哪些是主节点。

这是因为mark-control-plane阶段可以:



那么,主节点(--control-plane)不能加入集群并使用角色标签来发现其他控制平面节点吗?

是否有任何此类插件或其他配置此行为的方法,以避免使用单独的基础结构来负载均衡API服务器?

最佳答案

查看kubeadm types definition时,我发现这个很好的描述清楚地说明了这一点:



这也可能会影响kubernetes生成的PKI,因为它将需要知道一个公共(public)名称/ IP,您将通过该公共(public)名称/ IP来访问群集,以将其包含在为api节点生成的证书中,否则它们将无法正确匹配。

如果您确实不想拥有一个负载平衡器,则可以使用所有控制平面节点的IP设置一个循环dns条目,然后尝试为controlPlaneEndpoint值指定此条目。但是,这将对故障转移和冗余没有帮助,因为不会从记录中删除发生故障的节点,并且某些客户端可能会缓存该地址,而不尝试重新解析该地址,从而进一步延长了中断时间。

希望这可以帮助。

关于kubernetes - 为什么需要kubeadm配置的controlPlaneEndpoint?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57845534/

10-15 19:15