Gymterview
junior

Какие основные команды kubectl нужно знать?

kubectl — CLI-инструмент для управления кластером Kubernetes. Все команды работают с API Server.

Получение информации

Пример
# Список Pod'ов (в текущем namespace)
kubectl get pods

# Список Pod'ов во всех namespace
kubectl get pods -A

# Список Pod'ов с подробностями (IP, нода)
kubectl get pods -o wide

# Список по типу
kubectl get deployments
kubectl get services
kubectl get configmaps
kubectl get nodes

# Вывод в YAML или JSON формате
kubectl get deployment my-app -o yaml

Подробная информация

Пример
# Детальное описание ресурса (включая Events!)
kubectl describe pod my-pod
kubectl describe deployment my-app
kubectl describe node worker-1

kubectl describe — одна из самых полезных команд для диагностики. Секция Events в выводе показывает, почему Pod не запускается.

Логи

Пример
# Логи Pod'а
kubectl logs my-pod

# Логи конкретного контейнера в Pod'е
kubectl logs my-pod -c app

# Стримить логи (аналог tail -f)
kubectl logs -f my-pod

# Последние 100 строк
kubectl logs --tail=100 my-pod

# Логи предыдущего (упавшего) контейнера
kubectl logs my-pod --previous

Выполнение команд внутри контейнера

Пример
# Выполнить команду
kubectl exec my-pod -- ls /app

# Открыть интерактивный терминал
kubectl exec -it my-pod -- /bin/sh

Создание и удаление ресурсов

Пример
# Применить манифест (создать или обновить)
kubectl apply -f deployment.yaml

# Применить все манифесты из директории
kubectl apply -f ./k8s/

# Удалить ресурс
kubectl delete pod my-pod
kubectl delete -f deployment.yaml

Масштабирование и переадресация

Пример
# Изменить количество реплик
kubectl scale deployment my-app --replicas=5

# Пробросить порт Pod'а на локальную машину
kubectl port-forward pod/my-pod 8080:8080

# Пробросить порт Service
kubectl port-forward service/my-service 8080:80

Полезные возможности

Пример
# Посмотреть потребление ресурсов
kubectl top pods
kubectl top nodes

# Проверить манифест без применения (dry run)
kubectl apply -f deployment.yaml --dry-run=client

# Посмотреть отличия до применения
kubectl diff -f deployment.yaml

На собеседовании: минимум — знать get, describe, logs, apply, delete, exec. Частая ошибка — не знать kubectl describe и его секцию Events для диагностики проблем.