OCI 运行时执行失败:执行失败:无法启动容器进程:打开/dev/pts/0:不允许操作:未知

Mos*_*imi 11 runc docker kubernetes containerd kubernetes-rook

我读过许多与我的问题类似的链接,但它们都没有帮助我解决问题。

类似链接:

  1. 由于执行“systemctl daemon-reload”后权限问题,无法执行到容器中
  2. OCI 运行时执行失败:执行失败:无法启动容器进程:打开/dev/pts/0:不允许操作:未知
  3. CI运行时执行失败:执行失败:无法启动容器进程:打开/dev/pts/0:不允许操作:未知
  4. OCI 运行时执行失败:执行失败:无法启动容器进程:打开/dev/pts/0:不允许操作:未知
  5. docker exec 执行失败
  6. OCI运行时执行失败:执行失败:container_linux.go:348:启动容器进程导致“打开/ proc / self / fd:没有这样的文件或目录”:未知

问题描述:

我已经使用创建了一个新的 Kubernetes 集群Kubespray。当我想在其中一个容器中执行一些命令时,我遇到了以下错误:

执行的命令
kubectl exec -it -n rook-ceph rook-ceph-tools-68d847b88d-7kw2v -- sh
Run Code Online (Sandbox Code Playgroud)
错误:

OCI 运行时执行失败:执行失败:无法启动容器进程:打开 /dev/pts/1:不允许操作:未知命令以退出代码 126 终止

我也登录了运行pod的节点,并尝试使用docker exec命令执行容器,但错误没有改变。

解决方法:

  • 据我发现,错误代码(126)意味着权限不足,但我sh在 Docker 或 Kubernetes 中没有遇到过这种错误(例如执行)。

  • 我还检查了是否SELinux启用(正如第三个链接中所述)。

    apt install policycoreutils
    sestatus
    # Output
    SELinux status:                 disabled
    
    Run Code Online (Sandbox Code Playgroud)
  • 在第5个链接中,据说检查你是否更新了内核,而我没有升级节点上的任何内容。

    id; stat /dev/pts/0
    # output
    uid=0(root) gid=0(root) groups=0(root)
      File: /dev/pts/0
      Size: 0               Blocks: 0          IO Block: 1024   character special file
    Device: 18h/24d Inode: 3           Links: 1     Device type: 88,0
    Access: (0600/crw-------)  Uid: (    0/    root)   Gid: (    5/     tty)
    Access: 2022-08-21 12:01:25.409456443 +0000
    Modify: 2022-08-21 12:01:25.409456443 +0000
    Change: 2022-08-21 11:54:47.474457646 +0000
     Birth: -
    
    Run Code Online (Sandbox Code Playgroud)
  • 还尝试/bin/sh代替shor /bin/bash,但没有成功,并且发生了相同的错误。

谁能帮我找到这个问题的根本原因,然后解决它?

Xir*_*hat 7

这个问题可能与docker有关,首先耗尽你的节点。

kubectl drain <node-name>
Run Code Online (Sandbox Code Playgroud)

其次,通过 SSH 连接到节点并重新启动 docker 服务。

systemctl restart docker.service
Run Code Online (Sandbox Code Playgroud)

最后尝试执行您的命令。

  • 看起来这是 `runc` 1.1.3 中的一个错误,现已修复。我在我的机器上升级了containerd,从那以后就没有看到这个问题了。https://github.com/opencontainers/runc/pull/3554 (3认同)