Linux Iptables错误阻止在Kubernetes中启动Pod

Linux Iptables错误阻止在Kubernetes中启动Pod,linux,kubernetes,iptables,Linux,Kubernetes,Iptables,我正在Kelsey实验室建立Kubernetes集群: 到目前为止,我只设置了一个节点。尝试部署Pod时,以下错误会阻止其启动: 警告失败同步错误同步pod,跳过:无法使用网络插件“kubenet”为“nginx-3137573019-pjbie_默认值”设置网络错误:“无法为pod设置网络”nginx-3137573019-pjbie_默认值(b4128fc1-6707-11e6-a8b3-005056a2068d)\“无法执行iptables还原:退出状态1”(无法打开/tmp/kube-t

我正在Kelsey实验室建立Kubernetes集群:

到目前为止,我只设置了一个节点。尝试部署Pod时,以下错误会阻止其启动:

警告失败同步错误同步pod,跳过:无法使用网络插件“kubenet”为“nginx-3137573019-pjbie_默认值”设置网络错误:“无法为pod设置网络”nginx-3137573019-pjbie_默认值(b4128fc1-6707-11e6-a8b3-005056a2068d)\“无法执行iptables还原:退出状态1”(无法打开/tmp/kube-temp-iptables-restore-214792160:权限被拒绝\n);正在跳过pod“

kubelet以root用户身份运行。日志中提到的文件也属于root用户

系统是Linux OEL 7(内核:UEK 4.1.12)


有人知道原因是什么或如何进一步调查吗?

听起来SELinux阻止了
kubelet
对IPtables执行更改。搜索
/var/log/audit/audit.log>中包含字符串“AVC”的消息以确认该理论

最简单的解决方法是使用shell命令
setEnforce0
完全禁用SELinux。这在重新启动后无法继续,因此请确保在
/etc/SELinux/config
中也禁用SELinux

如果您不想完全禁用SELinux,我建议您使用
audit2allow
semodule
等工具为
kubelet
kube代理构建自己的SELinux模块

查看这些参考资料以获得进一步指导:


听起来SELinux在阻止kubelet对IPtables执行更改。在
/var/log/audit/audit.log
中搜索包含字符串“AVC”的消息,以确认该理论

最简单的解决方法是使用shell命令
setEnforce0
完全禁用SELinux。这在重新启动后无法继续,因此请确保在
/etc/SELinux/config
中也禁用SELinux

如果您不想完全禁用SELinux,我建议您使用
audit2allow
semodule
等工具为
kubelet
kube代理构建自己的SELinux模块

查看这些参考资料以获得进一步指导: