Гид по технологиям

Krew — менеджер плагинов для kubectl

• 7 min read • Kubernetes • Обновлено 18 Nov 2025
Krew — менеджер плагинов для kubectl
Krew — менеджер плагинов для kubectl

Логотип Kubernetes

Быстрые ссылки

  • Установка Krew

  • Обновление индекса плагинов

  • Установка плагинов

  • Обновление плагинов до новых версий

  • Поиск плагинов

  • Использование пользовательских индексов

  • Публикация собственных плагинов

  • Заключение

Что такое Krew

Krew — менеджер пакетов для kubectl, официальной CLI для Kubernetes. Он предоставляет единый интерфейс для поиска, установки и обновления плагинов, расширяющих функциональность kubectl. Плагины встраиваются как отдельные исполняемые файлы и доступны через префикс kubectl <плагин>.

Ключевые моменты:

  • Плагины можно устанавливать вручную (копируя бинарники в каталог в PATH), но так теряется возможность удобного обновления.
  • Krew поддерживает публичный индекс и сторонние (приватные) индексы, что позволяет распространять плагины внутри команды или организации.

Требования и совместимость

Krew совместим с kubectl версии v1.12 и выше. Проверяйте совместимость плагина с вашей версией kubectl в описании плагина.

Важно: храните Krew в каталоге $KREW_ROOT, по умолчанию это $HOME/.krew, а исполняемые файлы плагинов располагаются в подкаталоге bin.

Установка Krew

Krew — проект с открытым исходным кодом, входящий в экосистему Kubernetes, но он не входит в дистрибутив kubectl по умолчанию. Скачайте релиз с GitHub Releases и запустите инсталляционный скрипт для вашей ОС.

Пример ручной установки (Linux amd64):

$ ./krew-linux_amd64 install krew

В официальной документации доступен полный скрипт, который автоматически определяет платформу и загружает нужный архив.

После установки добавьте в PATH каталог bin Krew:

$ export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

Проверьте, что Krew доступен:

~$ kubectl krew

Вы увидите краткую справку:

krew is the kubectl plugin manager.

You can invoke krew through kubectl: “kubectl krew [command]…”

Usage:

kubectl krew [command]

…

Важно: при скриптовой установке убедитесь, что вы доверяете источнику релиза и проверяете контрольные суммы при необходимости.

Обновление индекса плагинов

Индекс плагинов Krew — это каталог всех доступных пакетов. Аналогично спискам пакетов в системных менеджерах вроде apt, индекс нужно периодически обновлять, чтобы видеть новые релизы и добавленные плагины.

Обновление локальной копии индекса:

$ kubectl krew update

После выполнения вы увидите сообщение об обновлении локального индекса.

Совет: выполняйте обновление индекса перед массовыми установками или обновлениями плагинов, если вы длительное время не запускали krew.

Установка плагинов

Команда install загружает и регистрирует выбранный плагин в kubectl, беря дистрибутив из URL, указанного в манифесте плагина.

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

$ kubectl krew install ctx

Krew автоматически обновляет индекс перед установкой, поэтому вы получите актуальную версию плагина. После установки в выводе обычно показываются сведения от автора (версия, короткое описание).

Пример использования установленного плагина:

$ kubectl ctx my-context

Где ctx — команда плагина, доступная через kubectl.

Обновление до новых релизов плагинов

Krew умеет обновлять плагины централизованно. Команда upgrade обновляет индекс и затем обновляет все установленные плагины.

$ kubectl krew upgrade

Чтобы обновить конкретный плагин, передайте его имя:

$ kubectl krew upgrade ctx

Чтобы удалить плагин:

$ kubectl krew uninstall ctx

Чтобы просмотреть список установленных плагинов и их версий:

~$ kubectl krew list

Пример вывода:

PLUGIN VERSION

ctx v0.9.4

krew v0.4.3

ns v0.9.4

Krew сам отображается в списке плагинов и поддерживается системой обновлений: сначала обновляется krew, затем — остальные плагины.

Поиск плагинов

Команда search позволяет просматривать индекс из терминала:

~$ kubectl krew search cert-manager

Пример вывода:

NAME DESCRIPTION INSTALLED

cert-manager Manage cert-manager resources inside your cluster no

Чтобы получить подробную информацию о плагине, используйте info — это покажет версию, URL архива, SHA256 и описание:

~$ kubectl krew info cert-manager

Пример информации:

NAME: cert-manager

INDEX: default

URI: https://github.com/jetstack/cert-manager/releases/download/v1.7.0/kubectl-cert_manager-linux-amd64.tar.gz

SHA256: 73618617b9ec42994c3ea77bbc8be743e382501d42ad2ee7aeca0d32c15655c0

VERSION: v1.7.0

HOMEPAGE: https://github.com/jetstack/cert-manager

DESCRIPTION:

The official plugin accompanying cert-manger, a Kubernetes add-on to

automate the management and issuance of TLS certificates. Allows for

direct interaction with cert-manager resources e.g. manual renewal of

Certificate resources.

Совет: проверяйте поле SHA256 в манифестах, если вам важна целостность загрузок.

Использование пользовательских индексов

Krew поддерживает пользовательские индексы — это обычные Git-репозитории с папкой plugins, содержащей YAML-манифесты плагинов. По структуре они похожи на публичный индекс Krew.

Добавить индекс можно командой index add с указанием URL репозитория:

$ kubectl krew index add custom-index https://example.com/krew/index.git

Установка плагина из пользовательского индекса:

$ kubectl krew install custom-index/example-plugin

Если префикс не указан, Krew использует default/. Чтобы перенаправить непрефиксованные имена на свой индекс, установите переменную окружения KREW_DEFAULT_INDEX_URI:

$ export KREW_DEFAULT_INDEX_URI="https://example.com/krew/index.git"

Теперь, при отсутствии префикса, установка будет осуществляться из вашего индекса:

$ kubectl krew install example-plugin

Практический совет: храните приватный индекс внутри вашей корпоративной сети или в приватном Git-хранилище с ограниченным доступом.

Публикация собственных плагинов

Процесс распространения собственного плагина через Krew:

  1. Создайте архив плагина (.tar.gz или .zip) с бинарниками и вспомогательными файлами.
  2. Загрузите архив в публичное или приватное место (GitHub Releases, ваш сервер хранения артефактов).
  3. Напишите YAML-манифест Krew, указывающий имя, описание, версию и URL архива.
  4. Закоммитьте манифест в репозиторий-индекс или создайте Pull Request в публичный индекс Krew.

Пример мини-алгоритма приемки манифеста:

  • Манифест отвечает схеме Krew (поля name, version, urls, sha256, files и т.д.).
  • Архив доступен по URL и содержит исполняемые файлы для заявленных платформ.
  • SHA256 совпадает с указанным в манифесте.

Критерии приёмки

  • Манифест валиден по схеме Krew.
  • Бинарник запускается и корректно возвращает –help.
  • SHA256 проверен и совпадает с объявленным.
  • Лицензия и информация об авторе указаны в манифесте или на странице проекта.

Подходы и когда Krew не подходит

Когда Krew — хорошее решение:

  • Нужен централизованный способ распространять плагины сотрудникам.
  • Требуется удобное обновление плагинов через одну команду.
  • Хотите поддерживать приватные наборы утилит внутри организации.

Когда Krew может не подойти:

  • Ваша инфраструктура полностью оффлайн и нет возможности хранить архивы и индексы даже локально.
  • Требуется тонкий контроль установки (например, установка отдельных версий бинарей в разные окружения без единого менеджера).

Альтернативы:

  • Простое управление бинарниками через конфигурационные менеджеры (Ansible/Salt) для специфичных окружений.
  • Использование систем пакетирования ОС (deb/rpm) для распространения с более строгой политикой обновлений.

Рекомендации по безопасности

  • Храните приватные индексы в приватных Git-репозиториях с доступом по SSH или через правильные ACL.
  • Проверяйте SHA256 архива перед установкой в автоматизированных пайплайнах.
  • Ограничьте список доверенных плагинов для автоматического развёртывания в production.

Чек-листы по ролям

Чек-лист для DevOps

  • Установить Krew на контрольные узлы.
  • Добавить приватный индекс в CI/CD.
  • Настроить проверку SHA256 в пайплайне.

Чек-лист для SRE

  • Отслеживать установленные плагины и их версии через kubectl krew list.
  • Автоматически обновлять тестовую среду перед продом.
  • Сообщать об обновлениях команды, если плагин влияет на работу кластера.

Чек-лист для разработчика

  • Установить полезные плагины (ctx, ns и т.д.) в локальное окружение.
  • Чекать совместимость плагина с локальной версией kubectl.

Мини-методология интеграции Krew в команду

  1. Оцените потребности команды: какие плагины нужны разработчикам и оператору.
  2. Создайте приватный индекс для внутренних плагинов.
  3. Настройте CI для сборки и публикации артефактов и экспорта SHA256 в манифест.
  4. Добавьте шаги установки плагинов в правила развёртывания окружений.
  5. Определите политику обновлений (частота, тестирование перед применением).

Диаграмма принятия решения

flowchart TD
  A[Нужен менеджер плагинов?] -->|Да| B{Есть ли доступ в интернет?}
  B -->|Да| C[Используйте публичный индекс Krew]
  B -->|Ограничен| D[Создайте приватный индекс 'Git']
  B -->|Нет| E[Рассмотрите альтернативы: Ansible/локальные пакеты]
  C --> F[Добавьте Krew в CI/CD и настройте обновления]
  D --> F
  E --> G[Распределяйте бинарники вручную или через системный пакет]

Советы по миграции и совместимости

  • При переходе на Krew из ручного управления бинарниками, сначала подготовьте приватный индекс с нужными версиями, затем постепенно переключайте пользователей.
  • Проверяйте, что установленные вручную плагины не конфликтуют по именам с теми, что устанавливает Krew (Krew регистрирует плагины в kubectl и может перезаписать команды).
  • Для CI окружений фиксируйте версии плагинов в манифестах и не разрешайте автоматическое обновление без тестирования.

Примеры распространённых плагинов

Публичный индекс Krew содержит более 180 плагинов, среди популярных:

  • cert-manager — управление объектами Cert-Manager в кластере.
  • tail — упрощённый просмотр логов.
  • score — статический анализ Kubernetes-объектов.
  • ctx, ns — быстрый переход между контекстами и неймспейсами.

Выберите плагины, которые реально сокращают время рутинных задач в вашей команде.

Заключение

Krew добавляет удобный уровень управления плагинами для kubectl: поиск, установка, обновление и поддержка приватных индексов. Он особенно полезен в командах, где плагины используются повсеместно и требуется единая стратегия распространения и обновлений.

Ключевые рекомендации:

  • Установите Krew один раз и добавьте его bin в PATH.
  • Используйте приватные индексы для внутренних инструментов.
  • Внедрите проверку контрольных сумм и политику обновлений.

Важно: перед массовым развёртыванием протестируйте обновления плагинов в изолированном окружении.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

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

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро