ma question est simple.
Comment exécuter une commande bash dans le pod? Je veux tout faire avec une commande bash?
[root@master ~]# kubectl exec -it --namespace="tools" mongo-pod --bash -c "mongo"
Error: unknown flag: --bash
Donc, la commande est simplement ignorée.
[root@master ~]# kubectl exec -it --namespace="tools" mongo-pod bash -c "mongo"
root@mongo-deployment-78c87cb84-jkgxx:/#
Ou alors.
[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
Si c'est juste une fête, cela fonctionne certainement. Mais je veux sauter dans le Mongo Shell immédiatement.
J'ai trouvé une solution, mais ça ne marche pas. Dis-moi si c'est possible maintenant? Exécution de plusieurs commandes (ou à partir d'un script shell) dans un pod kubernetes
Merci.
Le symbole de double tiret "-" est utilisé pour séparer les arguments que vous voulez transmettre à la commande des arguments kubectl. Donc, la manière correcte est:
kubectl exec -it --namespace=tools mongo-pod -- bash -c "mongo"
Vous avez oublié un espace entre "-" et "bash".
Pour exécuter plusieurs commandes, vous souhaiterez peut-être:
créer un script et le monter en tant que volume dans votre pod et l'exécuter
pour lancer un conteneur latéral avec le script et l'exécuter
J'utilise quelque chose comme ceci pour entrer dans le shell du pod:
kubectl exec -it --namespace develop pod-name bash
alors vous pouvez exécuter la commande que vous voulez dans le pod (par exemple, ping)
ping www.google.com