Mos*_*imi 11 runc docker kubernetes containerd kubernetes-rook
我读过许多与我的问题类似的链接,但它们都没有帮助我解决问题。
类似链接:
问题描述:
我已经使用创建了一个新的 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,但没有成功,并且发生了相同的错误。
谁能帮我找到这个问题的根本原因,然后解决它?
这个问题可能与docker有关,首先耗尽你的节点。
kubectl drain <node-name>
Run Code Online (Sandbox Code Playgroud)
其次,通过 SSH 连接到节点并重新启动 docker 服务。
systemctl restart docker.service
Run Code Online (Sandbox Code Playgroud)
最后尝试执行您的命令。
| 归档时间: |
|
| 查看次数: |
27528 次 |
| 最近记录: |