我正在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)
有没有人有想法,原因可能是什么或如何进一步调查?
答案 0 :(得分:2)
听起来SELinux阻止kubelet
对IPtables进行更改。搜索包含字符串' AVC'在/var/log/audit/audit.log
内,以确认理论。
最简单的解决方法是使用shell命令setenforce 0
完全禁用SELinux。这不会在重新启动后继续存在,因此请确保在/etc/selinux/config
中禁用SELinux。
如果您不想完全禁用SELinux,我建议您使用audit2allow
和semodule
之类的工具来构建自己的SELinux模块kubelet
和kube-proxy
。
检查这些参考资料以获得进一步的指导: