Kubernetes运维:Calico 插件相关 Troubleshooting
文章目录
1. NetworkManager 兼容性问题
背景:当物理机使用 NetworkManager 服务管理网卡设备时,重启 NetworkManager 服务导致 vxlan.calico 的 IP 地址丢失,跨节点 Pod 无法访问。
定位方式:执行 systemctl restart NetworkManager
vxlan.calico 上 Node 节点的网关 IP 会丢失并且设备状态变为 Down (或者Pod跨节点范围时出现一些奇怪的现象 >_<!)。
解决方式:编辑 /etc/NetworkManager/conf.d/calico.conf 文件,加入以下内容,使 NetworkManager 不再接管 Calico 相关的网络设备。
|
|
参考文档:
2. Firewalld 兼容性问题
背景:当物理机上部署 Calico 并开启 Firewalld 时,Pod 访问网络异常。
解决方式:由于 Firewalld 基于黑名单机制,因此开启时所有转发报文会被丢弃,导致 pod-pod 流量不可访问。
可以添加以下配置暂时进行规避:
|
|
修改之后执行firewalld-cmd --reload
。
PS:由于 Calico 的 Network Policy 原有实现基于 Iptables,导致 Firewalld 开启时两者相互影响。因此官方建议关闭 Firewalld,使用 HostEndpoint/GlobalNetworkPolicy 替代。
参考文档:
3. 探针配置问题
背景:使用官方提供的 calico-vxlan.yaml 的 manifest 部署时,calico/node 容器探针无法就绪。
健康检查报如下告警:
|
|
解决方式:修改 calico-vxlan.yaml 配置, 注释掉以下环境变量:
|
|
参考文档:
文章作者 yoaz
上次更新 2022-03-17
许可协议 MIT