k8s节点多网卡下指定某一个ip为节点INTERNAL-IP

INTERNAL-IP由kubelet进程选择或指定,也就是我们kubectl get node -o wide 查看到的INTERNAL-IP,这个地址如果在多张网卡或者多个IP的场景下可能会产生不是我们所预期的IP,所以需要我们进行指定,

kubelet 决定使用哪个 IP 作为 NodeIP 时,如果未指定 --node-ip 参数,kubelet 通常会选择节点上默认路由的出口 IP 地址,通常是节点的主网络接口(如 eth0)的 IP。

以下操作都需要在 kuadm join 之前进行操作,也就是安装完 kubelet 服务以后,编辑 kubelet 的 systemd 服务配置文件

vim /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS --node-ip=<你的节点IP>

然后重启kubelet服务

sudo systemctl daemon-reload
sudo systemctl restart kubelet

我们在构建k8s集群时,需要注意不要有重复的INTERNAL-IP,不然会造成路由混乱和通信故障等问题,如果已经加入的节点,我们需要删除节点以后按照上述操作以后重新加入集群。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/1131

评论列表

0%