我有一些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
的能力会停止工作?(但容器仍在运行)
1条答案
按热度按时间oug3syen1#
从8月中旬开始,GitHub出现了一些one或another问题。他们说这是一个SELinux问题,在runc v1.1.4中得到了修复。你应该检查你的runc版本,当它低于提到的版本时,然后更新它。
否则,您可以在不进行生产时禁用SELinux:
或者当你需要一些更复杂的解决方案时,试试这个:https://github.com/moby/moby/issues/43969#issuecomment-1217629129