Если вы уже знакомы с Kubernetes или только начали его изучать, вы наверняка слышали о kubectl. Это не просто очередная утилита командной строки — это основной инструмент управления кластером Kubernetes. В этой статье разберёмся, что такое kubectl, зачем он нужен, как работает и какие команды стоит знать в первую очередь.
Знакомство kubectl?
kubectl (произносится как “куб-контрол” или “кей-ю-би-контрол”) — это CLI-инструмент (command-line interface), который позволяет взаимодействовать с Kubernetes-кластером. С его помощью можно:
- Разворачивать приложения
- Проверять состояние компонентов
- Изменять конфигурации
- Отлаживать работу подов и сервисов
- Масштабировать приложения и управлять ресурсами
Фактически, kubectl — это интерфейс между вами и API-сервером Kubernetes, через который происходит всё управление кластером.
Как работает kubectl?
Когда вы вводите команду kubectl, она преобразуется в HTTP-запрос к API-серверу Kubernetes. Ваши действия — будь то создание пода, получение логов или удаление сервиса — интерпретируются как REST-запросы к кластеру.
Под капотом kubectl использует файл конфигурации kubeconfig, который содержит информацию о:
- Кластере
- Учетных данных (токен, сертификаты и т. д.)
- Текущем контексте (то есть к какому кластеру и namespace вы сейчас подключены)
По умолчанию kubeconfig лежит в ~/.kube/config.
Как установить kubectl?
Установить kubectl можно с официального сайта Kubernetes:
curl -LO "https://dl.k8s.io/release/$(curl -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/Для Windows и macOS доступны установщики и пакеты через chocolatey, brew и другие менеджеры.
Основные команды kubectl
Вот базовый набор команд, с которых стоит начать:
| Команда | Назначение |
|---|---|
| kubectl get pods | Список всех подов в текущем namespace |
| kubectl get services | Список сервисов |
| kubectl apply -f файл.yaml | Применить манифест (создание/обновление ресурсов) |
| kubectl delete pod имя-пода | Удалить под |
| kubectl describe pod имя | Подробная информация о поде |
| kubectl logs имя-пода | Просмотр логов |
| kubectl exec -it имя — bash | Подключиться к поду (если в нем есть bash) |
| kubectl scale deployment имя –replicas=3 | Масштабировать деплоймент до 3 подов |
Режимы работы и удобства
- Namespace-ы: По умолчанию kubectl работает в namespace default. Можно явно указать другой:
kubectl get pods -n kube-system - Автодополнение: Для bash/zsh есть автодополнение, которое ускоряет работу:
source <(kubectl completion bash) - Плагины: kubectl поддерживает плагины. Любой бинарный файл с именем kubectl-<plugin> автоматически распознается как команда.
Советы начинающим
- Используйте kubectl explain <ресурс> для справки по объектам (например, kubectl explain deployment).
- Постарайтесь изучить формат манифестов в YAML — это ключ к эффективной работе с Kubernetes.
- Применяйте kubectl config get-contexts и kubectl config use-context для переключения между кластерами.
Заключение
kubectl — это ваш основной инструмент при работе с Kubernetes. Он даёт полный контроль над кластером и позволяет выполнять любые операции, от простого просмотра подов до сложной отладки и масштабирования. Освоение kubectl — это первый шаг к уверенной работе с Kubernetes в любой производственной или тестовой среде.
Если вы только начинаете, попробуйте развернуть небольшой локальный кластер с помощью Minikube или Kind и поэкспериментируйте с командами — это лучший способ закрепить знания на практике.