Skip to content

Команды kubectl объяснённые

Команды kubectl для каждодневной работы, сгруппированные по задачам: чтение кластера, инспекция нагрузок, применение и откат изменений, экспозиция сервисов, управление узлами и создание конфигурационных объектов. Каждая строка сопоставляет команду с реалистичным вызовом.

kubectl — ваш рычаг управления кластером Kubernetes. Модель декларативная: обычно вы применяете манифест (apply -f), а не создаёте объекты императивно, затем читаете результат (get, describe, logs). Команды ниже покрывают ежедневную эксплуатацию; добавляйте флаг неймспейса (-n name), когда вы не в пространстве имён по умолчанию.

Справочная таблица · 59 записи
59 of 59 rows
Кластер и контекст
Показывает, где работают control plane и основные сервисы.kubectl cluster-info
Перечисляет кластеры и неймспейсы, между которыми можно переключаться.kubectl config get-contexts
Переключает на другой контекст кластера или неймспейса.kubectl config use-context my-prod
Задаёт неймспейс по умолчанию для текущего контекста.kubectl config set-context --current --namespace=staging
Переименовывает сохранённый контекст в вашем kubeconfig.kubectl config rename-context old-name prod
Перечисляет все типы ресурсов, известные кластеру.kubectl api-resources
Печатает версии Kubernetes клиента и сервера.kubectl version
Показывает поля, поддерживаемые ресурсом, из схемы API.kubectl explain pod.spec.containers
Проверяет, может ли текущий пользователь выполнить данное действие.kubectl auth can-i delete pods
Инспекция нагрузок
Перечисляет поды и их статус; добавьте -o wide для узла и IP.kubectl get pods -A
Перечисляет типовые ресурсы неймспейса одним вызовом.kubectl get all
Добавляет колонки узла и IP к любой команде get.kubectl get pods -o wide
Печатает ресурс как полный YAML-манифест за ним.kubectl get deploy/web -o yaml
Перечисляет деплойменты и число готовых реплик.kubectl get deployments
Перечисляет stateful set'ы и их готовые реплики.kubectl get statefulsets
Перечисляет batch-задания и запланированные cron-задания.kubectl get jobs,cronjobs
Показывает события, лейблы и статус одного пода.kubectl describe pod web-abc
Показывает ёмкость узла, его условия и запущенные поды.kubectl describe node node-1
Печатает stdout пода; -f — следить, --previous — последний краш.kubectl logs -f web-abc
Запускает команду внутри работающего пода.kubectl exec -it web-abc -- sh
Живые CPU и память для подов или узлов (нужен metrics-server).kubectl top pods
Перечисляет недавние события: неудачные pull'и, backoff'ы.kubectl get events -A --sort-by=.lastTimestamp
Перечисляет ingress-правила и их адреса load balancer.kubectl get ingress
Копирует файлы между вашей машиной и работающим подом.kubectl cp web-abc:/var/log/app.log ./app.log
Блокирует выполнение, пока ресурс не выполнит условие.kubectl wait --for=condition=ready pod -l app=web
Запускает одноразовый под из образа, без манифеста.kubectl run debug --rm -it --image=busybox -- sh
Применение, масштабирование, выкатка
Показывает, что изменил бы apply, ничего не меняя.kubectl diff -f deploy.yaml
Создаёт или обновляет ресурсы из файла манифеста.kubectl apply -f deploy.yaml
Применяет манифесты и удаляет объекты, покинувшие их.kubectl apply -f dir/ --prune -l app=web
Открывает живой ресурс в редакторе и применяет при сохранении.kubectl edit deploy/web
Меняет несколько полей живого ресурса.kubectl patch deploy/web --patch-file fix.json
Направляет контейнеры деплоймента на новый образ.kubectl set image deploy/web web=nginx:1.27
Заменяет объект, при необходимости удаляя и пересоздавая его.kubectl replace --force -f deploy.yaml
Удаляет ресурсы, объявленные в файле манифеста.kubectl delete -f deploy.yaml
Меняет число реплик деплоймента.kubectl scale deploy/web --replicas=4
Следит за выкаткой до успеха или провала.kubectl rollout status deploy/web
Перечисляет ревизии, через которые прошла выкатка.kubectl rollout history deploy/web
Перезапускает каждый под деплоймента, по одному за раз.kubectl rollout restart deploy/web
Откатывает деплоймент к предыдущей ревизии.kubectl rollout undo deploy/web
Сервисы и сеть
Перечисляет сервисы, их тип и cluster IP.kubectl get svc
Показывает, какие IP подов сейчас обслуживают каждый сервис.kubectl get endpoints web
Создаёт сервис, фронтящий набор подов; --type=NodePort или LoadBalancer доступен снаружи кластера.kubectl expose deploy/web --port=80
Показывает адрес load balancer за каждым ingress (alpha).kubectl ingress status -A
Перечисляет политики, ограничивающие трафик подов.kubectl get networkpolicies
Туннелирует локальный порт к поду или сервису.kubectl port-forward svc/web 8080:80
Узлы и обслуживание
Перечисляет узлы кластера и их статус.kubectl get nodes -o wide
Помечает узел как неподходящий для планирования (без новых подов).kubectl cordon node-1
Снова помечает узел как подходящий для планирования.kubectl uncordon node-1
Вытесняет поды с узла и помечает его неподходящим для планирования.kubectl drain node-1 --ignore-daemonsets
Добавляет или убирает taint, отпугивающий поды от узла.kubectl taint node node-1 key=value:NoSchedule
Удаляет зависший под немедленно, минуя graceful shutdown.kubectl delete pod web-abc --grace-period=0 --force
Объекты и конфигурация
Создаёт новый неймспейс для ресурсов.kubectl create namespace staging
Перечисляет неймспейсы и их статус.kubectl get namespaces
Хранит конфигурационные ключи или файлы как объект кластера.kubectl create configmap app --from-file=config.yaml
Перечисляет config map'ы в неймспейсе.kubectl get configmaps
Хранит пароль или сертификат как secret.kubectl create secret generic db --from-literal=password=s3cret
Перечисляет secret'ы в неймспейсе.kubectl get secrets
Прикрепляет или убирает лейбл у ресурса.kubectl label pod web-abc tier=backend
Прикрепляет метаданные, которые селекторы не сматчивают.kubectl annotate deploy/web release=july