启动NetworkManager服务导致K8S集群报错

# 关闭NetworkManager服务
systemctl stop NetworkManager
# 重启K8S集群网络组件CNI
kubectl restart deployment flannel -n kube-system

以下回复来自AI

K8S集群部分节点启动NetworkManager导致服务无法对外访问

1. 确认问题现象

● 故障表现:
○ Pod 无法跨节点通信。
○ 节点无法访问集群服务(如 CoreDNS、API Server)。
○ kubectl get nodes 显示节点状态为 NotReady。
● 直接原因:
○ NetworkManager 接管了网络接口(如 eth0),覆盖了容器网络插件(如 Flannel/Calico)的配置。
○ CNI 插件依赖的虚拟网桥(如 cni0)或路由表被 NetworkManager 修改。

2. 临时恢复网络

(1) 停止并禁用 NetworkManager
# 停止 NetworkManager 服务
systemctl stop NetworkManager

# 禁止开机启动
systemctl disable NetworkManager
(2) 重启网络服务
# 重启传统网络服务(如 network.service)
systemctl restart network

# 重启容器运行时和 kubelet
systemctl restart docker containerd kubelet
(3) 检查网络接口和路由
# 确认 CNI 相关接口(如 cni0、flannel.1)已恢复
ip addr show

# 检查路由表是否包含容器网络的路由
ip route show

3. 永久修复方案

(1) 配置 NetworkManager 忽略容器网络接口
编辑 NetworkManager 配置文件,排除 CNI 管理的接口(如 cni0、veth*、flannel*):
cat <<EOF > /etc/NetworkManager/conf.d/calico.conf
[keyfile]
unmanaged-devices=interface-name:cni0;interface-name:veth*;interface-name:flannel*
EOF

# 重启 NetworkManager(如果仍需保留该服务)
systemctl restart NetworkManager
(2) 使用传统网络服务(推荐)
如果不需要 NetworkManager,直接禁用并改用 network-scripts:
# 安装 network-scripts(部分系统需手动安装)
yum install network-scripts -y  # CentOS/RHEL

# 禁用 NetworkManager
systemctl disable --now NetworkManager

# 启用传统网络服务
systemctl enable --now network

4. 检查 CNI 插件状态

(1) 确认 CNI 插件配置
检查 /etc/cni/net.d/ 下的 CNI 配置文件(如 10-calico.conflist)是否正常:
cat /etc/cni/net.d/*
(2) 重启 CNI 插件
根据使用的网络插件执行重启:
# 示例:重启 Calico
kubectl delete pod -n kube-system -l k8s-app=calico-node

# 示例:重启 Flannel
systemctl restart flanneld

5. 验证修复

● 检查节点状态:
kubectl get nodes
确保所有节点状态为 Ready。
● 测试跨节点通信:
kubectl run test-pod --image=busybox -- sleep 3600
kubectl exec test-pod -- ping <其他节点的PodIP>
● 检查服务暴露:
curl -I <Service的ClusterIP>:<Port>

6. 根本原因分析

● 冲突机制:
○ NetworkManager 默认会接管所有网络接口,包括 CNI 插件创建的虚拟接口(如 cni0),导致路由表和防火墙规则被覆盖。
○ 部分 Linux 发行版(如 CentOS 8+)默认启用 NetworkManager,需显式配置以避免冲突。
● 预防措施:
○ 在节点初始化时禁用 NetworkManager。
○ 若必须使用 NetworkManager,严格配置 unmanaged-devices 规则。

posted @ 2025-04-29 13:50  凨筝  阅读(75)  评论(0)    收藏  举报