回答问题

我创建了一个 Kubernetes 集群,其中有一个主节点和两个工作节点。我使用以下命令初始化了主节点

sudo kubeadm init --token-ttl=0 --apiserver-advertise-address=192.168.0.27

192.168.0.27是主节点的ip地址。然后我使用生成的令牌来启动我的工作节点。现在的问题是我的网络在 DHCP 中,并且 IP 地址有时会发生变化,因此它开始显示以下错误:

Unable to connect to the server: dial tcp 192.168.0.27:6443: getsockopt: no route to host

它显示了上述错误,因为在初始化主节点时,我已经使用了 ip 地址,并且在 ip 地址更改后,它无法访问它。

是否可以以某种方式配置主节点和其他节点,以便无论 IP 地址发生任何变化,它们都可以工作。

谢谢

Answers

正如@Suresh Vishnoi 提到的,由于实现,无法在当前稳定版本的 Kubernetes 中设置 DNS 名称。

但是,具有该功能的合并请求 - DNS 名称而不是 IP 地址的新密钥已经合并到 Kubernetes 主服务器中,并且可以从版本v1.10.0-beta.4获得。

在您的情况下,无法使用 DNS 名称进行发现,但是,您可以设置 DHCP 服务器以将 DHCP 池中的 IP 地址关联到您的主设备的 MAC 地址,这将使您能够使用 DHCP 的所有功能,但是你主人的地址总是一样的。

您可以像这样配置标准 LinuxdhcpdDHCP 服务器(将 MAC 地址和 IP 替换为您需要的那个):

host KubeMaster { hardware ethernet 00:1F:6A:21:71:3F; fixed-address 10.0.0.101; }

如果您为 DHCP 服务器使用任何路由器或不同的操作系统,请查看他们的文档。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐