我正在关注这个参考https://kube-vip.io/control-plane/用于 HA 集群设置。为了测试目的,我想设置 3 个主服务器 - 1 个工作服务器集群。
文档使用 192.168.0.75 作为 VIP,但没有提到他们如何获得这个 IP
由于我正在为 Kubernetes 使用 digitalocean droplets,我尝试使用 VPC IP 范围中的 IP,假设它是 10.xyz,kubeadm init
对于所有 droplet 来说都是相同的。但是,我无法kubeadm join
使用此 IP 执行操作(说。http://10.xyz:6443没有到主机的路由)
如何获取有效的VIP价值?
答案1
kube-vip 本身并不真正关心您使用什么 IP 地址,只要它是“免费的”并且与您选择的接口位于同一子网中。
假设主节点上的 eth0 如下所示:
// master node 1
eth0 inet addr:192.168.1.11
bcast:192.168.1.255
mask:255.255.255.0
// master node 2
eth0 inet addr:192.168.1.12
bcast:192.168.1.255
mask:255.255.255.0
// master node 3
eth0 inet addr:192.168.1.13
bcast:192.168.1.255
mask:255.255.255.0
您现在可以使用192.168.1.X
VIP。192.168.1.67
可以工作,或者也可以192.168.1.182
(192.168.1.10
假设地址是“免费的”)。这些 IP 地址中没有一个比其他 IP 地址“更有效”。
我不确定所有这些在 digitalocean 上是如何工作的(因为我从未使用过它),但您可能必须分配一个所有节点都可以使用的额外 IP 地址。例如,在 linode(类似平台)上,有一个名为“IP 共享”的选项,它允许您在多个节点之间共享一个 IP。
但除此之外,你可能甚至不需要 kube-vip,因为digitalocean 提供托管 TCP 负载均衡器这可能就是你要找的。我甚至发现有关如何使用 digitalocean 的托管负载均衡器设置 HA 控制平面的教程。
答案2
我同意 Eleasar 的回答。我可以补充一点,你之所以收到,http://10.x.y.z:6443 no route to host
是因为你必须kubeadm join
使用主节点 IP和不是 Kube-VIP IP。