Выполнить команду bash в pod с kubectl?
мой вопрос прост.
Как выполнить команду bash в контейнере? Я хочу сделать все с помощью одной команды bash?
[[email protected] ~]# kubectl exec -it --namespace="tools" mongo-pod --bash -c "mongo"
Error: unknown flag: --bash
Таким образом, команда просто игнорируется.
[[email protected] ~]# kubectl exec -it --namespace="tools" mongo-pod bash -c "mongo"
[email protected]:/#
Или так.
[[email protected] ~]# 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
Если это просто бит, это, безусловно, работает. Но я хочу немедленно перейти в оболочку монго.
Я нашел решение, но оно не работает. Скажи мне, возможно ли это сейчас? Выполнение нескольких команд (или из сценария оболочки) в кубернете
Благодарю.
Ответы
Ответ 1
Двойной символ "-" используется для разделения аргументов, которые вы хотите передать команде из аргументов kubectl. Итак, правильный способ:
kubectl exec -it --namespace=tools mongo-pod -- bash -c "mongo"
Вы забыли пробел между "-" и "bash".
Для выполнения нескольких команд вы можете:
Ответ 2
Я использую что-то вроде этого для входа в оболочку pod:
kubectl exec -it --namespace develop pod-name bash
тогда вы можете выполнить команду, которую вы хотите внутри модуля (например, ping)
ping www.google.com