fu *_*cky 1 load-balancing kubernetes kubeadm kubernetes-apiserver
我认为我的重点是如何使用这个配置参数 - “controlPlaneEndpoint”。\n目前使用“controlPlaneEndpoint”有问题。\n https://kubernetes.io/docs/setup/independent/high-availability/
\n\n真心希望您能耐心看看我的实际情况。
\n\n首先,配置参数“controlPlaneEndpoint”是vip还是负载均衡,对吧?\n所以,我将\xe2\x80\x9ccontrolPlaneEndpoint\xe2\x80\x9d配置为4层负载均衡;我尝试了aws\\ali。\n所有结果显示在使用过程中都会有概率超时,并且在使用kubeadm安装过程中100%出现“nodexxx not found”。
\n\n为什么会出现这种情况?\n如果我在参数-“controlPlaneEndpoint”中使用4层负载均衡,就会出现网络问题。\n比如我有3个master,ServerA\xe3\x80\x81ServerB\xe3\x80\x81ServerC,我在 serverA 上输入命令 \xe2\x80\x9dkubectl get pod\xe2\x80\x9c 。超时的可能性为 33%。\n当 serverA 请求通过 4 层负载平衡定向到 ServerB 或 ServerC 时,一切正常。\n如果请求通过 4 层负载平衡定向到 ServerA 本身,则超时为必然会发生。
\n\n因为当 ServerA 既是服务器又是请求者时,无法使用 4 层负载均衡。\n这就是 4 层负载均衡的网络特性。\n同样的原因,当我使用 kubeadm 创建新集群时,我的第一个master 是 serverA。虽然ServerA的apiserver已经在docker中运行,并且我可以成功telnet ServerA-IP:6443,但是kubelet将在参数-“controlPlaneEndpoint”中检查4层负载均衡-IP:prot。因此,当我配置 \xe2\x80\x9ccontrolPlaneEndpoint\xe2\x80\x9d 时,在使用 kubeadm 安装过程中,100% 出现“nodexxx not found”。
\n\n在阿里等公有云环境中,我无法使用keepalived+haproxy。\n这意味着我必须为k8s-apiserver使用7层负载均衡,如果我想使用参数-“controlPlaneEndpoint”。正确的?
\n\n如何配置 kubeadm-config 进行第 7 层负载均衡?是https,我在kubeadm认证时遇到了问题。有任何文档吗?
\n我们遇到了完全相同的问题,但使用的是 Azure 负载均衡器(级别 4)。
1) 它在执行“kubeadm init”的第一个主节点上失败,因为它尝试通过负载均衡器与自身通信。
2) 在执行“kubeadm join”的所有其他主节点上,当负载均衡器选择节点本身而不是集群中已有的任何 (N-1) 个节点时,有 1/N 的失败机会。
我们通过使用 iptables 规则来破解。例如,在“kubeadm init”之前的第一个节点中,我们使用 iptables 将负载均衡器 IP 路由到 127.0.0.1:
iptables -t nat -A 输出 -p all -d ${FRONTEND_IP} -j DNAT --to-destination 127.0.0.1
当然,我们在 kubeadm init 之后删除了 iptables 规则。我不建议任何人这样做,这是一个令人讨厌的黑客行为,我写这篇文章的目的是迫使那些可能知道我们缺少什么的人发布正确的解决方案。
致原发者:我不认为我们的意图是使用 7 级 LB。文档很清楚,他们说只需要 4 级即可。
如果我们找到正确的解决方案,我会再次发布。
| 归档时间: |
|
| 查看次数: |
1703 次 |
| 最近记录: |