Kubectl: Exec Shell — Подключение к Поду (Контейнеру)

Команда kubectl exec служит для выполнения команд внутри Docker-контейнеров запущенных внутри Подов (Pods) в Kubernetes.

С помощью этой команды можно также получить интерактивную shell-сессию в Docker-контейнере, запущенному внутри Пода.

В этой заметке я покажу, как подключиться к Поду и запустить интерактивную shell-сессию с помощью команды kubectl exec.

Подключение к Поду в Kubernetes

Info: При получении ошибок «executable file not found in $PATH» или «no such file or directory», попробуйте вместо /bin/bash использовать /bin/sh.

Получить интерактивный shell в Поде (если Под представляет собой группу из нескольких контейнеров, вы подключитесь к контейнеру по умолчанию, т.е. первому контейнеру из конфига Пода):

$ kubectl exec -it <pod_name> /bin/bash

Дельный Совет: Вывести список Подов в кластере Kubernetes! Читать далее →

Чтобы получить список всех контейнеров в Поде, выполните:

$ kubectl get pod <pod_name> -o jsonpath='{.spec.containers[*].name}{"\n"}'

Подключиться к конкретному контейнеру в Поде:

$ kubectl exec -it <pod_name> -c <container_name> /bin/bash

Подключиться к Поду из другого Namespace:

$ kubectl exec -it <pod_name> -n <namespace> /bin/bash