【问题标题】:How to make kubernetes work with dynamic ip address如何使 kubernetes 使用动态 IP 地址
【发布时间】:2018-08-21 07:52:19
【问题描述】:

我创建了一个 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 地址发生任何变化,它们都可以正常工作。

谢谢

【问题讨论】:

  • 嗨,--apiserver-advertise-address string : The IP address the API Server will advertise it's listening on. Specify '0.0.0.0' to use the address of the default network interface. 你可以试试--apiserver-advertise-address=0.0.0.0
  • @SureshVishnoi 嗨。默认网络接口是什么意思。在我使用的机器上,它有eth0wlan0。通过使用0.0.0.0,它将选择哪个接口。如果IP发生变化,我可以访问集群吗?谢谢
  • 据我了解,Api-server 需要绑定一个 IP 地址,所以如果您不指定特定的 IP 地址,那么它将从 eth0 获取 IP 地址。 Eth0 从 DHCP 客户端获取 IP 地址。
  • @SureshVishnoi 我认为这应该可以工作,我正在尝试,会告诉你。
  • 是的,让我们看看:)

标签: networking kubernetes nodes


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2021-11-11
    • 2018-05-20
    • 2021-02-11
    • 2020-06-12
    • 2022-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    相关资源
    最近更新 更多