问题一:kubectl get pods -o wide 查看deployments,显示pods 但是没有集群IP?
如下:
NAME READY STATUS RESTARTS AGE IP NODE
kubernates-bootcamp-7fddcf7f-b9s7l 1/1 Running 14 8h <none> 192.168.2.108
如果创建pods、deploy,会反复出现CrashLoopBackOff 、Running等状态。 出现这种情况是因为 kube-proxy没配置好。参考下面。
问题二: kube-proxy 启动报错 Failed to execute iptables-restore: exit status 1?
这个问题已有相关文章阐述,但解决方式是 yum remove iptables ,这种方式太暴力,依赖iptables的相关组件太多(包括Docker),执行上述命令后,都会被卸载掉(可以参考:https://cloud.tencent.com/developer/article/1362616)。经多次测试,非常不可取。
本人使用rpm命令方式回滚iptables版本,仅重装iptables和iptables-services即可,缺少的包可以去 ,具体操作如下:
更换iptables的版本号降低到iptables-1.4.21-24.1.el7_5.x86,去http://rpm.pbone.net/ 下载下面两个包:
iptables-1.4.21-24.1.el7_5.x86_64.rpm
iptables-services-1.4.21-24.1.el7_5.x86_64.rpm
然后非依赖移除iptables与iptables-services,命令参考如下:
rpm -e --nodeps iptables-1.4.21-33.el7.x86_64
rpm -e --nodeps iptables-services-1.4.21-33.el7.x86_64
再安装上述下载的两个新包:
rpm -ivh iptables-1.4.21-24.1.el7_5.x86_64.rpm
rpm -ivh iptables-services-1.4.21-24.1.el7_5.x86_64.rpm
(也可以将两个包放在同一目录下,执行 rpm -ivh iptables-*.rpm)
重启kube-proxy服务既可以。