我的问题很简单。
如何在pod中执行bash命令?我想用一个bash命令做所有事情?
[root@master ~]# kubectl exec -it --namespace="tools" mongo-pod --bash -c "mongo"
Error: unknown flag: --bash
因此,命令被简单地忽略。
[root@master ~]# kubectl exec -it --namespace="tools" mongo-pod bash -c "mongo"
root@mongo-deployment-78c87cb84-jkgxx:/#
差不多吧。
[root@master ~]# kubectl exec -it --namespace="tools" mongo-pod bash mongo
Defaulting container name to mongo.
Use 'kubectl describe pod/mongo-deployment-78c87cb84-jkgxx -n tools' to see all of the containers in this pod.
/usr/bin/mongo: /usr/bin/mongo: cannot execute binary file
command terminated with exit code 126
如果这只是一个bash,它当然可以工作。但我想立即进入mongo shell。
我找到了一个解决方案,但它不起作用。请告诉我现在是否可以这样做?Executing multiple commands( or from a shell script) in a kubernetes pod
谢谢。
3条答案
按热度按时间idfiyjo81#
双破折号“--”用于将您希望在容器内运行的命令与kubectl参数分开。因此正确的方法是:
你忘了在“--”和“bash”之间加空格。
要执行多个命令,您可能需要:
66bbxpm52#
我用这样的东西进入分离舱的 shell
然后你可以在pod中执行你想要的命令(例如ping)
然后你可以看到你的ping日志,瞧...享受它:D
nc1teljy3#
对我来说,这是打开pod shell的正确命令(以及参数顺序):
/bin/bash
导致了以下错误:发生内部错误:在容器中执行命令时出错:无法在容器中执行:无法启动exec“":OCI运行时执行失败:执行失败:无法启动容器进程:执行代码:“/bin/bash”:统计/bin/bash:没有这样的文件或目录:未知的
因此,请确保您使用的是
/bin/sh
,以避免不必要的错误。