如何使用多个apiservers配置kube-proxy master_url

Dir*_*ski 5 proxy high-availability kubernetes

我正在使用具有多个apiservers的群集设置,其前面有一个负载均衡器,用于外部访问,并在裸机上安装.

就像高可用性Kubernetes Clusters文档中提到的那样,我想使用内部负载平衡来利用kubernetes我的集群中的服务.这到目前为止工作正常,但我不确定什么是最好的设置方式kube-proxy.它显然不能使用服务IP,因为它根据来自apiserver(master)的数据代理这个服务IP .我可以使用任何一个apiservers的IP,但这会导致失去高可用性.因此,我目前看到的唯一可行的选择是利用我的外部负载均衡器,但这似乎有点错误.

有人有什么想法或最佳实践吗?

kan*_*306 1

这是一个相当老的问题,但随着问题的持续存在......就这样了。

Kubernetes Restclient 中存在一个错误,它不允许使用多个 IP/URL,因为它将始终选取列表中的第一个 IP/URL。这会影响 kube-proxy 和 kubelet,如果您在多主设置中不使用负载均衡器(就像您所做的那样),则会在这些工具中留下单点故障。该解决方案可能不是有史以来最优雅的解决方案,但目前(我认为)是更简单的解决方案。

其他解决方案(我更喜欢,但可能并不适合所有人,并且不能解决所有问题)是创建一个 DNS 条目,它将循环您的 API 服务器,但正如下面的链接之一所指出的,这只能解决负载平衡,而不是 HA。

您可以通过以下链接查看这个故事的进展:

kube-proxy/kubelet 问题:https://github.com/kubernetes/kubernetes/issues/18174
Restclient PR: https: //github.com/kubernetes/kubernetes/pull/30588
“官方”解决方案:https: //github.com/kubernetes/kubernetes/issues/18174#issuecomment-199381822