VK Cloud

kubectl: команды для управления кластером Kubernetes

1 сентября 2026 г.
_blog_head_13.png

kubectl — стандартная утилита командной строки Kubernetes. Через неё запускают команды против кластеров: разворачивают приложения, инспектируют ресурсы, управляют объектами и просматривают логи. Фактически это единая точка входа для работы с Kubernetes API: от создания объектов до диагностики проблем.

Все команды kubectl выполняются относительно текущего контекста, связки «кластер + пользователь + namespace», заданной в конфигурационном файле kubeconfig. Если контекст указывает на другой кластер или namespace, результат команды окажется неожиданным. Поэтому проверка контекста — первый шаг перед любой операцией.

Установка и настройка

kubectl устанавливается несколькими способами: скачиванием готового бинарника с официального сайта Kubernetes, через пакетные менеджеры (apt для Linux, brew для macOS, choco для Windows) или через curl-скрипт. Выбор зависит от операционной системы и от того, нужно ли зафиксировать конкретную версию клиента под версию кластера.

После установки kubectl использует файл kubeconfig. В нём хранится информация о кластерах, пользователях, namespace и механизмах аутентификации. Для работы с несколькими кластерами (например, staging и production) между ними переключаются командой kubectl config use-context.

Важно знать

Проверка текущего контекста

Текущий контекст проверяется командой kubectl config current-context. Это первое, что стоит сделать перед выполнением потенциально разрушительных операций — если контекст указывает на другой кластер или namespace, команда может затронуть не те ресурсы.

Синтаксис команд

Все команды kubectl строятся по единой схеме: kubectl [command] [TYPE] [NAME] [flags]. Меняется действие и тип ресурса, а логика запроса остаётся одинаковой, что упрощает освоение новых команд.

Узнавайте о выходе новых статей в блоге первыми!

Будем держать в курсе новостей и облачных трендов

section-subscribe_2x.png
    section-subscribe_2x.png

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

    kubectl get

    Выводит список объектов: pods, deployments, services, nodes. Без указания имени команда покажет все объекты нужного типа в текущем namespace.

    kubectl describe

    Показывает подробную информацию об объекте, включая состояние и связанные события. Первая команда при диагностике: события внутри describe часто прямо указывают на причину сбоя.

    kubectl logs

    Выводит логи контейнера. Нужна, когда pod запущен, но приложение внутри работает не так, как ожидалось.

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

    Для управления объектами Kubernetes есть два подхода: декларативный и императивный.

    kubectl apply -f применяет манифест YAML декларативно: сравнивает описанное в файле состояние с текущим состоянием кластера и вносит только нужные изменения. Файл манифеста становится источником правды о состоянии ресурса, поэтому его удобно хранить в git и использовать для повторяемых развёртываний.

    kubectl create создаёт ресурс императивно, прямой командой без файла манифеста. Удобно для быстрого тестирования, но хуже подходит для продакшна из-за отсутствия истории изменений.

    kubectl edit открывает ресурс в редакторе и применяет изменения после сохранения: вариант для точечной правки без пересоздания манифеста.

    kubectl delete удаляет ресурс из кластера по имени, по файлу манифеста или по набору меток (label selector).


    Диагностика и отладка

    Когда pod запущен, но нужно разобраться, что происходит внутри контейнера, kubectl exec выполняет команду внутри работающего pod'а, например запускает интерактивную shell-сессию для проверки файлов, переменных окружения или сетевых настроек.

    Если нужно обратиться к приложению внутри pod'а с локальной машины без выставления сервиса наружу, помогает kubectl port-forward: команда перенаправляет один или несколько локальных портов на pod. Стандартный способ отладки перед тем, как открывать сервис через Ingress или LoadBalancer.

    При разборе причин сбоя pod'а связка kubectl describe pod и kubectl get events показывает хронологию: какие события кластер зафиксировал при попытке запуска, от ошибок вытягивания образа до нехватки ресурсов на узле.

    Управление деплойментами

    После обновления образа или конфигурации деплоймента важно контролировать раскатку. kubectl rollout status показывает, завершилось ли обновление, а kubectl rollout history показывает список предыдущих ревизий. Если новая версия работает нестабильно, kubectl rollout undo откатывает деплоймент к предыдущей ревизии без необходимости вручную пересобирать старый манифест.

    kubectl scale меняет количество реплик деплоймента: команда используется и при ручном масштабировании под нагрузку, и при временном сокращении числа подов для экономии ресурсов.

    Полезные флаги и приёмы

    -n / --namespace

    Указывает namespace, если нужно работать не с default, а с конкретным пространством имён.

    -o wide / -o json / -o yaml

    Меняет формат вывода. wide добавляет столбцы к таблице, _json и yaml выводят полное описание объекта для скриптов или ручного анализа.

    kubectl explain

    Выводит справку по полям ресурса прямо в терминале, без перехода в документацию.

    Заключение

    Для систематизации команд по категориям (context/config, создание объектов, просмотр и поиск ресурсов, обновление, форматирование вывода) есть официальный kubectl Cheat Sheet — удобная отправная точка, когда нужно вспомнить синтаксис редко используемой команды.

    Оставьте заявку, чтобы получить консультацию

    Наши специалисты свяжутся с вами в ближайшее время и ответят на все вопросы.

    section_subscribe_2x_9ab2d878a6_ac1afd4471.png
              Ссылка скопирована
              Поделиться

              Почитать по теме

              _blog_head_131.png
              28 августа

              Квартальный дайджест обновлений Managed Kubernetes VK Cloud

              _blog_head_72.png
              24 августа

              Ingress в Kubernetes: выбор контроллера, маршрутизация и TLS

              40+ готовых сервисов