如何使kubernetes与动态IP地址一起工作

时间:2018-03-13 06:35:24

标签: networking kubernetes nodes

我创建了一个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地址更改的情况下工作。

由于

1 个答案:

答案 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服务器使用任何路由器或不同的操作系统,请查看他们的文档。