Перейти к содержанию

kubectl

Коротко

CLI для управления кластером. Все операции: просмотр, создание, удаление, отладка.

Команды

Просмотр ресурсов:

Bash
kubectl get pods

Поды в текущем namespace.

Bash
kubectl get pods -A

Поды во всех namespace.

Bash
kubectl get pods -o wide

Расширенный вывод (IP, узел).

Bash
kubectl get deploy,svc,pods

Несколько типов ресурсов сразу.

Детали объекта:

Bash
kubectl describe pod my-pod

Подробная информация: события, состояние, volumes.

Логи:

Bash
kubectl logs my-pod

Логи пода.

Bash
kubectl logs my-pod -f

Следить за логами (tail -f).

Bash
kubectl logs my-pod -c my-container

Логи конкретного контейнера (если несколько).

Bash
kubectl logs my-pod --previous

Логи предыдущего контейнера (после рестарта).

Выполнение команд:

Bash
kubectl exec my-pod -- ls /app

Выполнить команду в поде.

Bash
kubectl exec -it my-pod -- /bin/sh

Интерактивный shell.

Применение манифестов:

Bash
kubectl apply -f manifest.yaml

Создать/обновить ресурсы из файла.

Bash
kubectl apply -f ./manifests/

Применить все файлы из директории.

Удаление:

Bash
kubectl delete pod my-pod

Удалить под.

Bash
kubectl delete -f manifest.yaml

Удалить ресурсы из файла.

Масштабирование:

Bash
kubectl scale deployment my-deploy --replicas=3

Изменить число реплик.

Rollout (деплой):

Bash
kubectl rollout status deployment/my-deploy

Статус выкатки.

Bash
kubectl rollout history deployment/my-deploy

История ревизий.

Bash
kubectl rollout undo deployment/my-deploy

Откат на предыдущую версию.

Bash
kubectl rollout restart deployment/my-deploy

Перезапуск подов деплоймента.

Примеры

Найти поды по лейблу:

Bash
kubectl get pods -l app=nginx

Смотреть изменения в реальном времени:

Bash
kubectl get pods -w

Вывод в YAML:

Bash
kubectl get pod my-pod -o yaml

Создать deployment:

Bash
kubectl create deployment nginx --image=nginx

Проброс порта для отладки:

Bash
kubectl port-forward pod/my-pod 8080:80