一、环境信息
操作系统 | K8S版本 | containerd版本 |
---|---|---|
Centos7.6 | v1.24.17 | v1.6.12 |
二、背景信息
1、通过以下命令检查网络插件的状态,发现网络插件coredns处于pending状态
2、通过以下命令检查kubelet服务状态,发现Container runtime network not ready等报错
三、解决方法
报错原因:该错误通常发生在容器运行时的网络配置不正确或网络未完全初始化时。它可能是由于网络插件未正确安装、配置错误、网络故障等原因导致的。
操作步骤如下:
1、在K8S中,网络配置通常存储在CNI配置文件中。我们可以通过查看CNI配置文件来确认配置是否正确
root@k8s-master-63:~# cat /etc/cni/net.d/cni-default.conf
{
"name": "mynet",
"cniVersion": "0.3.1",
"type": "bridge",
"bridge": "mynet0",
"isDefaultGateway": true,
"ipMasq": true,
"hairpinMode": true,
"ipam": {
"type": "host-local",
"subnet": "10.48.0.0/16" # pod网段
}
}
2、如果上述步骤均未解决问题,我们可以尝试重新启动kubelet服务
root@k8s-master-63:~# systemctl restart kubelet
如下图所示,则coredns正常
总结:Container runtime network not ready错误通常是由于网络配置不正确或网络插件未正确安装等原因引起的。通过检查网络插件、网络配置、重启kubelet服务、检查网络状态以及重启节点等步骤,我们可以解决这个问题。在解决问题之前,确保备份数据和配置,并确保有其他节点可以接管工作负载,以防止服务中断。
总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:企业级K8s集群运维实战