为什么“kubectl exec -it”无法登录 google 容器优化 os

why “kubectl exec -it” cannot login on google container optimised os

当我 运行 kubectl exec -it /bin/bash 时,我得到了这样的错误

OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"env\": executable file not found in $PATH": unknown command terminated with exit code 126

我使用 kubectl 和 docker exec as 进行了几次重试,但在 google 容器优化 os

上没有任何效果

我用了下面的

我登录到服务器并尝试使用 docker exec -it <containerId> <all options mentioned above> 登录到 docker 容器。但似乎没有什么好结果。

如 BMitch 所述,您的 docker 图像必须具有 bash 或 sh 否则您的命令将失败并显示完全相同的消息。

我只是 运行 一个测试,使用 Containerd (cos_containerd) 和 运行 创建了一个带有 Container-Optimized OS 的 GKE 集群:

kubectl run busybox --image busybox:1.28 --command sleep 1200
kubectl exec busybox -it -- sh

并成功执行到 pod 中。这与优化的 OS 容器无关,而可能与您的 docker 图像有关。