代码之家  ›  专栏  ›  技术社区  ›  S Andrew

如何使kubernetes使用动态ip地址

  •  14
  • S Andrew  · 技术社区  · 6 年前

    我创建了一个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 回复  |  直到 6 年前
        1
  •  4
  •   sanster_23 Ercan Aydogan    6 年前

    正如@Suresh Vishnoi所提到的,在当前稳定版本的Kubernetes中无法设置DNS名称,因为 implementation

    但是,具有该功能的合并请求-DNS名称而不是IP地址的新密钥已经存在 merged 进入Kubernetes master并可从版本获得 v1.10.0-beta.4

    在您的情况下,不可能使用DNS名称进行发现,但您可以将DHCP服务器设置为将IP地址从DHCP池关联到主机的MAC地址,这将使您能够使用DHCP的所有功能,但主机的地址将始终相同。

    标准Linux dhcpd 可以这样配置DHCP服务器(替换所需的mac地址和IP):

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

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