kubernetes 最终失效:kubectl执行失败,并显示“不允许的操作:未知”

mi7gmzs6  于 2022-12-22  发布在  Kubernetes
关注(0)|答案(1)|浏览(205)

我有一些Pod正在运行一些Python程序。最初我可以在Pod中执行简单的命令。但是过了一段时间(也许几个小时?)我开始得到以下错误:

$ kubectl exec -it mypod -- bash
error: Internal error occurred: error executing command in container: failed to exec in container: failed to start exec "37a9f1042841590e48e1869f8b0ca13e64df02d25458783e74d8e8f2e33ad398": OCI runtime exec failed: exec failed: unable to start container pr
ocess: open /dev/pts/0: operation not permitted: unknown

如果我重新启动Pod,则此操作将清除此情况。但是,我希望找出发生此情况的原因,以避免每次都必须重新启动Pod。
Pod运行的是一个简单的Python脚本,Python程序仍然正常运行(kubectl logs显示了我所期望的)。
此外,我还跨4个节点运行K3 for Kubernetes(1个master,3个worker)。我注意到所有运行在某些节点上的Pod都开始遇到这个问题。例如,最初我发现在worker2和worker3上运行的所有Pod都有这个问题(但worker1上的所有Pod都没有)。最终,所有工作节点上的所有Pod都开始出现此问题。因此,它似乎与节点上阻止exec运行的条件有关。但是,重新启动Pod会重置该条件。
据我所知,容器在containerd中运行良好,我可以登录到节点,containerd显示容器正在运行,我可以检查日志,等等...
我还应该检查什么?
为什么exec的能力会停止工作?(但容器仍在运行)

oug3syen

oug3syen1#

从8月中旬开始,GitHub出现了一些oneanother问题。他们说这是一个SELinux问题,在runc v1.1.4中得到了修复。你应该检查你的runc版本,当它低于提到的版本时,然后更新它。
否则,您可以在不进行生产时禁用SELinux:

setenforce 0

或者当你需要一些更复杂的解决方案时,试试这个:https://github.com/moby/moby/issues/43969#issuecomment-1217629129

相关问题