Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 使用kubectl在pod中执行bash命令?_Kubernetes_Kubectl - Fatal编程技术网

Kubernetes 使用kubectl在pod中执行bash命令?

Kubernetes 使用kubectl在pod中执行bash命令?,kubernetes,kubectl,Kubernetes,Kubectl,我的问题很简单 如何在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@mon

我的问题很简单

如何在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
如果只是一场狂欢,它肯定会奏效。但我想马上跳进mongo的壳里

我找到了一个解决方案,但它不起作用。现在告诉我这是否可行?

谢谢。

双破折号“-”用于将要在容器内运行的命令与kubectl参数分开。 因此,正确的方法是:

kubectl exec -it --namespace=tools mongo-pod -- bash -c "mongo"
您忘记了“-”和“bash”之间有空格

要执行多个命令,您可能需要:


  • 创建脚本并将其作为卷装入pod并执行

  • 使用脚本启动侧容器并运行它


我使用类似的方法进入吊舱外壳:

kubectl exec -it --namespace develop pod-name bash
然后,您可以在pod内执行所需的命令(例如ping)


>“要创建一个脚本并将其作为卷装载到pod中并执行它”-给定一个脚本,我如何使用kebectl将其作为卷装载到pod中?使用docker很容易,但我不知道如何使用Kubernetes做到这一点。例如,在容器中调用/volume/script.sh,在kubernetes中装载卷并将/volume作为装载文件夹。我想我的主要问题是创建包含脚本的卷。使用Docker,将主机文件系统的某些部分装载到容器中是很简单的。对于多节点Kubernetes群集,我不知所措。看看这里,这是否意味着从本地文件创建Kubernetes卷的唯一方法是将文件上载到web服务器,然后创建一个pod,将文件下载到卷中?我只是想弄明白我是愚蠢还是设计真的那么…不方便。它没有在吊舱外壳上执行任何命令。它只是登录到pod外壳。@Anthony,Nicola,看起来kubectl exec需要容器名(不管我们是否指定)。有没有办法只连接pod(而不是容器)?@Vishal786btc您的看法是非常主观的,因为post并不表示在不进入pod的情况下执行命令,因此有些人希望进入或不在pod内执行命令。
bash-c
在这里没有添加任何有用的内容。
ping www.google.com