如何正确更改 kubernetes 工作节点 ip 地址?

问题描述

我已经尝试过直接更改工作节点的 NIC ip。好像master节点会自动更新worker节点的ip信息。并且它对 kubernetes 集群没有任何负面影响。这是更改工作节点ip的简单而正确的方法吗?还是我遗漏了其他一些重要步骤?

解决方法

我使用 kubeadm 在一个公共网络中创建了一个带有两个 ubuntu18.04 虚拟机的迷你集群。

确实,更改工作节点的 IP 地址根本不会影响集群,除非新 IP 地址不会干扰 --pod-network-cidr

Kubelet 负责它并使用几个选项:

kubelet 是在每个节点上运行的主要“节点代理”。它可以 使用以下之一向 apiserver 注册节点:主机名;一种 覆盖主机名的标志;或云提供商的特定逻辑。

例如,如果您决定更改工作节点的 hostname,它将变得无法访问。


有两种方法可以正确更改 IP 地址:

  1. 使用新 IP(已更改)将工作节点重新加入集群
  2. 配置 kubelet 以通告特定 IP 地址。

最后一个选项可以通过以下方式完成:

  • 通过添加 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 修改 KUBELET_EXTRA_ARGS=--node-ip %NEW_IP_ADDRESS%
  • sudo systemctl daemon-reload 因为配置文件已更改
  • sudo systemctl restart kubelet.service

有用的链接: