本文永久链接: https://www.xtplayer.cn/kubernetes/pod-not-run/
问题现象
在早期 rancher kubernetes 版本中,在新集群创建应用后可能会出现大批量的 Pod 处于 ContainerCreating
状态。如图:
通过 kubectl describe
查看应用的事件,提示无法获取 IP 地址:
查看 kubelet 服务日志,可以看到以下的错误信息:
问题分析
根据以上信息可以确定,因为主机不支持 ipv6 或者 ipv6 功能被禁用,导致 flannel 在初始化容器网卡的时候一直无法初始化容器网卡的 IPV6 相关配置,从而导致容器无法正常获取 IP 地址。
处理方法
经过查询可以找到这是一个已知的 BUG,在不考虑更新 rancher kubernetes 版本的前提下,则需要在主机上强制启用 ipv6 功能。
centos
编辑
/etc/default/grub
,如果之前配置了ipv6.disable=1
,则把它改为ipv6.disable=0
;如果之前没有添加ipv6.disable
这个参数,则在现有的配置上添加ipv6.disable=0
。示例如下:
然后执行以下配置更新 grub 配置
grub2-mkconfig -o /boot/grub2/grub.cfg
最后
reboot
重启系统
Ubuntu
编辑
/etc/default/grub
,如果之前配置了ipv6.disable=1
,则把它改为ipv6.disable=0
;如果之前没有添加ipv6.disable
这个参数,则在现有的配置上添加ipv6.disable=0
。示例如下:
然后执行以下配置更新 grub 配置
最后
reboot
重启系统