Iptables错误阻止Pod在Kubernetes中启动

时间:2016-08-20 22:16:30

标签: linux kubernetes iptables

我正在Kelseys Lab之后建立一个Kubernetes集群:https://github.com/kelseyhightower/kubernetes-the-hard-way

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

Warning FailedSync Error syncing pod, skipping: failed to "SetupNetwork" for "nginx-3137573019-pjbie_default" with SetupNetworkError: "Failed to setup network for pod \"nginx-3137573019-pjbie_default(b4128fc1-6707-11e6-a8b3-005056a2068d)\" using network plugins \"kubenet\": Failed to execute iptables-restore: exit status 1 (Can't open /tmp/kube-temp-iptables-restore-214792160: Permission denied\n); Skipping pod"

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

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

有没有人有想法,原因可能是什么或如何进一步调查?

1 个答案:

答案 0 :(得分:2)

听起来SELinux阻止kubelet对IPtables进行更改。搜索包含字符串' AVC'在/var/log/audit/audit.log内,以确认理论。

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

如果您不想完全禁用SELinux,我建议您使用audit2allowsemodule之类的工具来构建自己的SELinux模块kubeletkube-proxy

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