Перейти к содержимому

kubectl

Коротко

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

Команды

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

1
kubectl get pods

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

1
kubectl get pods -A

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

1
kubectl get pods -o wide

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

1
kubectl get deploy,svc,pods

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

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

1
kubectl describe pod my-pod

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

Логи:

1
kubectl logs my-pod

Логи пода.

1
kubectl logs my-pod -f

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

1
kubectl logs my-pod -c my-container

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

1
kubectl logs my-pod --previous

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

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

1
kubectl exec my-pod -- ls /app

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

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

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

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

1
kubectl apply -f manifest.yaml

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

1
kubectl apply -f ./manifests/

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

Удаление:

1
kubectl delete pod my-pod

Удалить под.

1
kubectl delete -f manifest.yaml

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

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

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

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

Rollout (деплой):

1
kubectl rollout status deployment/my-deploy

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

1
kubectl rollout history deployment/my-deploy

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

1
kubectl rollout undo deployment/my-deploy

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

1
kubectl rollout restart deployment/my-deploy

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

Примеры

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

1
kubectl get pods -l app=nginx

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

1
kubectl get pods -w

Вывод в YAML:

1
kubectl get pod my-pod -o yaml

Создать deployment:

1
kubectl create deployment nginx --image=nginx

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

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