kubectl - это основной инструмент командной строки для управления кластерами Kubernetes. Он взаимодействует с API-сервером кластера для создания, обновления и удаления ресурсов. В данной статье рассмотрим, как использовать kubectl с конфигурационным файлом, скачанным из панели управления NetAngels
По умолчанию kubectl использует конфигурационный файл размещенный по следующему пути:
~/.kube/config
После создания кластера в NetAngels пользователь может скачать конфигурационный файл, который содержит все необходимые данные для подключения к кластеру.
Для получения конфигурационного файла в панели управления NetAngels необходимо:
Перейти в раздел управления кластерами Kubernetes
Выбрать нужный кластер
Нажать кнопку “Файл конфигурации”
Сохранить файл в стандартное расположение ~/.kube/config
После скачивания и размещения файла в ~/.kube/config, kubectl автоматически будет использовать его для подключения к кластеру при работе без указания дополнительных параметров.
Вы так же можете сохранить скачиваемый конфигурационный файл по любому другому пути, например, в домашний каталог пользователя - ~/config.yaml.
Для использования этого файла в kubectl можно:
Скопировать его в стандартное расположение:
cp ~/config.yaml ~/.kube/config
Либо использовать напрямую с флагом --kubeconfig:
kubectl --kubeconfig=~/config.yaml get nodes
Или установить переменную окружения:
export KUBECONFIG=~/config.yaml
Одним из свойств kubectl является возможность работы с несколькими конфигурационными файлами одновременно через переменную окружения KUBECONFIG. Эта переменная может содержать несколько путей к конфигурационным файлам, разделенных символом-разделителем:
В Unix-подобных системах (Linux, macOS) символом :
export KUBECONFIG=~/config.yaml:/etc/kube/config:/home/user/.kube/config
В Windows символом ;
set KUBECONFIG=C:\Users\user\Downloads\config.yaml;C:\Users\user\.kube\config
Когда указана переменная KUBECONFIG, kubectl объединяет конфигурации из всех указанных файлов в один виртуальный конфигурационный файл.
# Проверка подключения
kubectl --kubeconfig=~/config.yaml cluster-info
# Просмотр всех ресурсов в кластере
kubectl --kubeconfig=~/config.yaml get all --all-namespaces
# Получение информации о состоянии ресурсов
kubectl --kubeconfig=~/config.yaml get pods,svc,deploy --all-namespaces
# Просмотр всех узлов
kubectl --kubeconfig=~/config.yaml get nodes
# Просмотр детальной информации об узле
kubectl --kubeconfig=~/config.yaml describe node <имя-узла>
# Получение статуса узлов
kubectl --kubeconfig=~/config.yaml get nodes -o wide
# Просмотр всех подов
kubectl --kubeconfig=~/config.yaml get pods
# Просмотр подов с деталями
kubectl --kubeconfig=~/config.yaml get pods -o wide
# Просмотр логов пода
kubectl --kubeconfig=~/config.yaml logs <имя-пода>
# Выполнение команды в поде
kubectl --kubeconfig=~/config.yaml exec -it <имя-пода> -- /bin/sh
# Просмотр всех сервисов
kubectl --kubeconfig=~/config.yaml get services
# Просмотр сервиса с деталями
kubectl --kubeconfig=~/config.yaml describe service <имя-сервиса>
# Применение манифеста из файла
kubectl --kubeconfig=~/config.yaml apply -f deployment.yaml
# Применение файла конфигурации
kubectl --kubeconfig=~/config.yaml apply -f configmap.yaml
# Удаление ресурсов
kubectl --kubeconfig=~/config.yaml delete -f deployment.yaml