我创建了一个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地址更改的情况下工作。
由于
答案 0 :(得分:3)
正如@Suresh Vishnoi所提到的,由于implementation,无法在当前稳定版本的Kubernetes中设置DNS名称。
但是,使用该功能的合并请求 - DNS名称而不是IP地址的新密钥已经merged到Kubernetes master中,并且可以从版本v1.10.0-beta.4
获得。
在您的情况下,无法使用DNS名称进行发现,但是,您可以将DHCP服务器设置为从DHCP池到主服务器的MAC地址的关联IP地址,这样您就可以使用所有功能DHCP,但您的主人的地址将始终相同。
标准Linux dhcpd
您可以配置的DHCP服务器(将mac地址和IP替换为您需要的地址):
host KubeMaster {
hardware ethernet 00:1F:6A:21:71:3F;
fixed-address 10.0.0.101;
}
如果您的DHCP服务器使用任何路由器或不同的操作系统,请查看他们的文档。