После создания кластера к нему можно подключиться с помощью kubectl – консольного инструмента для управления Kubernetes. Через kubectl вы можете создавать и удалять ресурсы, просматривать состояние кластера, читать логи приложений и выполнять другие операции.
Если вы не знакомы с основными понятиями Kubernetes – начните со статьи “Основы Kubernetes”.
Установка kubectl
Linux (Ubuntu и другие дистрибутивы)
Установка kubectl на Ubuntu и другие Linux-дистрибутивы:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/macOS
Через Homebrew (менеджер пакетов):
brew install kubectlИли вручную (Apple Silicon):
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/Windows
Установка kubectl на Windows через winget (менеджер пакетов):
winget install Kubernetes.kubectlИли вручную: скачайте исполняемый файл со страницы релизов и добавьте путь к нему в переменную окружения PATH.
Проверка установки
kubectl version --clientОжидаемый вывод:
Client Version: v1.xx.x
Kustomize Version: v5.x.xПолучение kubeconfig
kubeconfig – это конфигурационный файл, в котором содержатся данные для аутентификации и адрес API-сервера (интерфейс программирования приложения) вашего Kubernetes cloud-кластера (облачного кластера). Без него kubectl не сможет подключиться к кластеру.
Чтобы скачать kubeconfig:
- Перейдите в дашборд (приборную панель) созданного кластера
- В карточке “Информация” нажмите “Подключиться”
- В открывшемся окне нажмите “Скачать kubeconfig”
- Сохраните файл на локальную машину
Первое подключение
Выполните команду для проверки соединения:
kubectl --kubeconfig kubeconfig.yaml get nodesЕсли подключение прошло успешно, вы увидите список нод (серверов) вашего K8s-кластера:
NAME STATUS ROLES AGE VERSION
dc5bca-client-c31fdf-xkd6w-jqpnc Ready <none> 2m v1.xx.x
dc5bca-client-c31fdf-xkd6w-rq847 Ready <none> 70s v1.xx.x\Статус Ready означает, что ноды работают и готовы принимать нагрузку. Если у ноды статус NotReady – скорее всего, ноде не хватает ресурсов. В этом случае обратитесь в техническую поддержку для диагностики.
Настройка kubectl для удобной работы
Переменная окружения KUBECONFIG
Чтобы не указывать --kubeconfig в каждой команде, задайте путь к файлу через переменную окружения:
export KUBECONFIG=/path/to/kubeconfig.yamlПосле этого kubectl будет использовать указанный файл автоматически:
kubectl get nodesЧтобы настройка сохранялась между сессиями, добавьте строку export KUBECONFIG=... в файл ~/.bashrc (Linux) или ~/.zshrc (macOS).
Перемещение в стандартное расположение
Альтернативный способ – переместить kubeconfig в стандартную директорию kubectl:
mkdir -p ~/.kube
cp kubeconfig.yaml ~/.kube/configkubectl автоматически ищет конфигурацию в ~/.kube/config, если переменная KUBECONFIG не задана.
Работа с несколькими кластерами
Если у вас несколько кластеров, вы можете объединить их kubeconfig-файлы и переключаться между ними через контексты.
Просмотр доступных контекстов:
kubectl config get-contextsПереключение на другой контекст:
kubectl config use-context <имя-контекста>Для объединения нескольких kubeconfig-файлов:
export KUBECONFIG=~/.kube/config:/path/to/second-kubeconfig.yaml
kubectl config view --merge --flatten > ~/.kube/merged-config
mv ~/.kube/merged-config ~/.kube/configБазовые команды kubectl
Ниже приведены основные kubectl-команды для повседневной работы с кластером.
Просмотр ресурсов
# Список нод кластера
kubectl get nodes
# Список подов во всех namespace
kubectl get pods --all-namespaces
# Список подов в конкретном namespace
kubectl get pods -n my-namespace
# Подробная информация о поде
kubectl describe pod <имя-пода>
# Список сервисов
kubectl get svc
# Список всех ресурсов в namespace
kubectl get all -n my-namespaceСоздание и применение ресурсов
# Применить манифест из файла
kubectl apply -f manifest.yaml
# Применить все манифесты из директории
kubectl apply -f ./manifests/
# Создать namespace
kubectl create namespace my-appЛоги и отладка
# Логи пода
kubectl logs <имя-пода>
# Логи с отслеживанием в реальном времени
kubectl logs -f <имя-пода>
# Логи конкретного контейнера в поде
kubectl logs <имя-пода> -c <имя-контейнера>
# Выполнить команду внутри пода
kubectl exec -it <имя-пода> -- /bin/shУдаление ресурсов
# Удалить ресурс по манифесту
kubectl delete -f manifest.yaml
# Удалить под
kubectl delete pod <имя-пода>
# Удалить все поды в namespace
kubectl delete pods --all -n my-namespaceПолезные флаги
-o wide– расширенный вывод с дополнительными колонками-o yaml– вывод в формате YAML (язык для хранения информации)-o json– вывод в формате JSON (текстовый формат обмена данными)-w/--watch– отслеживать изменения в реальном времени-n <namespace>– указать namespace (пространство имен, по умолчанию –default)
Пример:
kubectl get pods -o wide -wАвтодополнение команд
kubectl поддерживает автодополнение для bash и zsh.
bash
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrczsh
echo 'source <(kubectl completion zsh)' >> ~/.zshrc
source ~/.zshrcПосле настройки нажимайте “Tab” для автодополнения команд, имен ресурсов и флагов.
Все статьи раздела
- Kubernetes (K8s) – обзор сервиса Managed Kubernetes (управляемый Kubernetes)
- Основы Kubernetes – ключевые понятия: кластер, ноды, поды, сервисы
- Создание и настройка кластера – конфигурация master-нод, сеть и worker-группы
- Подключение к кластеру и работа с kubectl – вы здесь
- Управление кластером – добавление нод, изменение конфигурации, обновление, удаление
- Сеть и балансировщик нагрузки – сетевая модель, внешние и внутренние балансировщики
- Лимиты, квоты и ограничения – ограничения платформы, что можно и нельзя изменить
Если возникнут вопросы, напишите нам, пожалуйста, обращение в панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью или наши продукты с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.