我已经阅读了许多类似于我的问题的链接,但是它们都没有帮助我解决这个问题。
类似链接:
我使用Kubespray创建了一个新的Kubernetes集群。当我想在其中一个容器中执行一些命令时,遇到了以下错误:
执行的命令:
错误:
OCI运行时执行失败:执行失败:无法启动容器进程:打开/dev/pts/1:操作不允许:未知命令以退出代码126终止
我还登录到运行Pod的节点上,并尝试使用docker exec命令执行容器,但错误没有改变。
解决方法:
据我所发现,错误代码(126)意味着权限不足,但我在Docker或Kubernetes中没有遇到过这种错误(比如执行`sh`)。
我还检查了`SELinux`是否启用(正如第三个链接中所说)。
```bash apt install policycoreutils sestatus # 输出 SELinux status: disabled ```
在第五个链接中,建议检查是否已更新内核,但我在节点上没有升级任何内容。
```bash id; stat /dev/pts/0 # 输出 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: - ```
我还尝试了使用`/bin/sh`代替`sh`或`/bin/bash`,但没有起作用,仍然出现相同的错误。
有人能帮我找出这个问题的根本原因并解决它吗?
类似链接:
- 由于执行 'systemctl daemon-reload' 后的权限问题,无法进入容器。
- OCI 运行时执行失败:执行失败,无法启动容器进程:打开 /dev/pts/0:操作不允许:未知错误。
- CI 运行时执行失败:执行失败,无法启动容器进程:打开 /dev/pts/0:操作不允许:未知错误。
- OCI 运行时执行失败:执行失败,无法启动容器进程:打开 /dev/pts/0:操作不允许:未知错误。
- 无法执行 docker exec。
- OCI 运行时执行失败:执行失败,容器_linux.go:348:启动容器进程导致 "打开 /proc/self/fd:没有该文件或目录":未知错误。
我使用Kubespray创建了一个新的Kubernetes集群。当我想在其中一个容器中执行一些命令时,遇到了以下错误:
执行的命令:
kubectl exec -it -n rook-ceph rook-ceph-tools-68d847b88d-7kw2v -- sh
错误:
OCI运行时执行失败:执行失败:无法启动容器进程:打开/dev/pts/1:操作不允许:未知命令以退出代码126终止
我还登录到运行Pod的节点上,并尝试使用docker exec命令执行容器,但错误没有改变。
解决方法:
据我所发现,错误代码(126)意味着权限不足,但我在Docker或Kubernetes中没有遇到过这种错误(比如执行`sh`)。
我还检查了`SELinux`是否启用(正如第三个链接中所说)。
```bash apt install policycoreutils sestatus # 输出 SELinux status: disabled ```
在第五个链接中,建议检查是否已更新内核,但我在节点上没有升级任何内容。
```bash id; stat /dev/pts/0 # 输出 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: - ```
我还尝试了使用`/bin/sh`代替`sh`或`/bin/bash`,但没有起作用,仍然出现相同的错误。
有人能帮我找出这个问题的根本原因并解决它吗?
kubectl run debug --image=alpine -i --tty -- sh
你能检查一下这个命令是否可行吗? - Adiiirook-ceph-tools-68d847b88d-7kw2v
,我在这里提到了它。 - Mostafa Ghadimik describe node node_name | grep "kubernetes.io/arch"
- Adiiikubectl exec -i -n rook-ceph rook-ceph-tools-68d847b88d-7kw2v -- sh
命令,不要加上 -t 参数。这样你可能会得到一个没有 tty 的运行中的 shell。在空提示符下进行测试,例如输入date
和exit
。 如果可以正常工作,那么你遇到了 runc 的一个 bug,需要更新到 v1.1.4 版本。 - D. Lohrsträter