0

当我运行 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 进行了几次重试,但在谷歌容器优化操作系统上没有任何效果

我用了以下的

  • kubectl exec -it <podname> /bin/bash
  • kubectl exec -it <podname> /bin/sh
  • kubectl exec -it <podname> //bin//sh
  • kubectl exec -it <podname> //bin//bash
  • kubectl exec -it <podname> /bash kubectl exec -it <podname> bash

我登录服务器并尝试使用docker exec -it <containerId> <all options mentioned above>. 但似乎没有什么好解决的。

4

1 回答 1

1

正如 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 映像有关。

于 2021-08-09T18:25:28.797 回答