JDe*_*Dev 20 kubernetes kubectl
我的问题很简单.
如何在pod中执行bash命令?我想用一个bash命令做一切事情?
[root@master ~]# kubectl exec -it --namespace="tools" mongo-pod --bash -c "mongo"
Error: unknown flag: --bash
Run Code Online (Sandbox Code Playgroud)
因此,命令被忽略.
[root@master ~]# kubectl exec -it --namespace="tools" mongo-pod bash -c "mongo"
root@mongo-deployment-78c87cb84-jkgxx:/#
Run Code Online (Sandbox Code Playgroud)
或者.
[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
Run Code Online (Sandbox Code Playgroud)
如果它只是一个bash,它肯定有效.但是我想立刻跳进mongo shell.
我找到了一个解决方案,但它不起作用.告诉我现在是否可以这样做? 在kubernetes pod中执行多个命令(或从shell脚本执行)
谢谢.
Nic*_*Ben 56
双短划线符号" - "用于将要传递给kubectl参数的命令的参数分开.所以正确的方法是:
kubectl exec -it --namespace=tools mongo-pod -- bash -c "mongo"
Run Code Online (Sandbox Code Playgroud)
你忘记了" - "和"bash"之间的空格.
要执行多个命令,您可能需要:
创建脚本并将其作为卷安装在pod中并执行它
使用脚本启动侧容器并运行它
我使用这样的东西来进入 pod 的外壳:
kubectl exec -it --namespace develop pod-name bash
Run Code Online (Sandbox Code Playgroud)
然后你可以在 pod 中执行你想要的命令(例如 ping)
ping www.google.com
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
43641 次 |
最近记录: |