私の質問は簡単です。
ポッドでbashコマンドを実行する方法は? 1つの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 Shellに飛び込みたいです。
解決策を見つけましたが、うまくいきません。これが今可能かどうか教えてください? kubernetesポッドで複数のコマンドを実行する(またはシェルスクリプトから)
ありがとう。
二重ダッシュ記号「-」は、コマンドに渡す引数をkubectl引数から分離するために使用されます。正しい方法は次のとおりです。
kubectl exec -it --namespace=tools mongo-pod -- bash -c "mongo"
「-」と「bash」の間のスペースを忘れました。
複数のコマンドを実行するには、次のことが必要になる場合があります。
スクリプトを作成し、ポッドにボリュームとしてマウントして実行する
スクリプトでサイドコンテナを起動して実行するには
ポッドのシェルに入るには、次のようなものを使用します。
kubectl exec -it --namespace develop pod-name bash
次に、ポッド内で必要なコマンドを実行できます(例:ping)
ping www.google.com