Minikube使用Alpine linux崩溃进入Pod

时间:2018-06-04 15:07:42

标签: kubernetes minikube

每当我尝试通过运行alpine linux的minikube仪表板执行进入pod时,它会崩溃并关闭连接并出现以下错误

rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:262: starting container process caused "exec: \"bash\": executable file not found in $PATH"

CONNECTION CLOSED

命令输出" kubectl版本"内容如下:

Client Version: version.Info{Major:"1", Minor:"8", 
GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", 
GitVersion:"v1.8.0", 
GitCommit:"0b9efaeb34a2fc51ff8e4d34ad9bc6375459c4a4", 
GitTreeState:"clean", BuildDate:"2017-11-29T22:43:34Z", GoVersion:"go1.9.1", Compiler:"gc", Platform:"linux/amd64"}

请问有人可以提供建议吗?只要他们有BASH而不是ASH,我就可以完全运行其他容器。

非常感谢

2 个答案:

答案 0 :(得分:1)

通常Alpine linux不包含bash。 您是否尝试使用以下任何一种方法执行容器?

/bin/ash

/bin/sh

ash

sh

所以例如kubectl exec -it my-alpine-shell-293fj2fk-fifni2 -- sh应该完成这项工作。

答案 1 :(得分:1)

  

每次我尝试并执行一个吊舱

您没有指定您向kubectl exec提供的命令,但根据您的问题,我将假设它是kubectl exec -it $pod -- bash

正如错误消息所述,问题在于您使用的容器图像不提供bash。很多很多“苗条”的图像都没有随bash一起提供,因为依赖这样做会带来它们。

如果您想要一个适用于所有图片的命令,请使用sh,因为如果bash存在,则会有90%的时间与/bin/sh符号链接,其他情况(正如您在ashdash或其他方面提到的那样),然后使用sh仍然工作并允许您确定是否需要调整命令以专门请求一个不同的外壳。

因此kubectl exec -it $pod -- sh是我期望工作的命令

相关问题