
Эти 10 плагинов Kubectl могут помочь вам сделать вас самым ценным инженером Kubernetes в комнате
4 июня 2025 г.Kubernetes безумно мощный и становится намного проще в управлении, когда вы расширяете Kubectl с помощью плагинов. Благодаря сообществу с открытым исходным кодом (и управлению плагинами Krew), вы можете добавить тонны новых подкомандов в Kubectl, которые упростит задачи и облегчить управление кластером.
Но с сотнями доступных плагинов, как вы решаете, кто попробовать?
Мы делимся нашими фаворитами. Все плагины, которые сделали наш список, активно поддерживаются и совместимы с недавними версиями Kubernetes (подумайте 1.30+).
Давайте погрузимся!
1. Preq - обнаружение проблем надежности на ранних этапах
Что это такое:
preq
(произносится «приред»)Детектор проблемы с надежностьюэто ищет общие проблемы в вашем приложениидоОни вызывают отключения. Он основан на сообществе, управляемом сообществом каталога моделей сбоев (вроде базы данных уязвимости, но для надежности).
Сpreq
Вы можете запустить чеки против вашего работающего кластера приложений и быть предупрежденными об ошибках, неправильных конфигурациях или анти-паттернах, которые другие уже определили.
Почему это полезно:
Если вы когда -либо были ослеплены производственным инцидентом,preq
может быть спасателем. Он охотится через события и конфигурации в поисках последовательностей, которые соответствуют известным шаблонам сбоев.
Когда он что -то найдет, он предоставляет подробный отчет (с рекомендуемым исправлением), чтобы вы могли действовать быстро. Короче говоря, это привносит опыт работы в ваших руках, помогая командамОпределите и смягчайте проблемыПрежде чем они обострятся. Это похоже на то, чтобы кто -то проверял ваш кластер 24/7 (бесплатно и с открытым исходным кодом!).
Это захватывающий новый проект, вы можете найти и ⭐ Светь репо здесь:https://github.com/prequel-dev/preq
Установка:
kubectl krew install preq
Pro-tip:УстановитьСначала менеджер плагинов Krew
Пример использования:
После установки вы можете запуститьpreq
на определенной рабочей нагрузке или стручке. Например, для запуска проверки надежности на PostgreSQL POD:
kubectl preq pg17-postgresql-0
Это сканирует журналы и события POD по правилам библиотеки общей достоверности (CRE). Если будут обнаружены какие -либо известные проблемы, вы получите вывод, подробно описывающий проблему и то, как ее исправить (со ссылками на документацию).
Вы даже можете запланироватьpreq
как cronjob в вашем кластере, чтобыНепрерывно отслеживать и выдвигать оповещения (например, к слабым), когда что -то не такПолем Суммируя,preq
дает вам проактивную надежность, которые помогаютОстановить отключенияпрежде чем они случится.
2. аккуратный - очистите многословные выходные данные YAML
Что это такое:
kubectl-neat делает именно то, на что это похоже-этоПритягиваетKubernetes YAML выводит, удалив весь беспорядок. Когда вы делаете kubectl Get ... -o Yaml, вывод часто заполняется дополнительными полями (статус, управляемые поля, самостоятельно и т. Д.), Которые затрудняют сосредоточение на спецификации. Аккуратные снимают эти шумные поля и значения по умолчанию, оставляя вас с чистым манифестом, который гораздо легче читать.
Почему это полезно:
Если вы обнаружите, что ваши глаза застегиваются из бесконечных автогенерированных метаданных, этот плагин является для вас. Он пропускает такие поля, как ManagedFields, статус, CreationTimeStamp, ResourceVersion и другой шаблон, который вводит Kubernetes. Результатом является аккуратное представление о фактической конфигурации ресурса.
Это очень полезно для устранения неполадок или сравнения манифестов - вы можете увидетьтолькоПоля, которые вы или ваши инструменты определили, без шума с добавлением Kubernetes. Короче говоря, аккуратный делает выходы YAMLconciseand читаетсяПолем
Установка:
kubectl krew install neat
Пример использования:
Просто поднимите любой словесный выход в kubectl аккуратный. Например:
kubectl get podnginx-abc123 -o yaml | kubectl neat
Это выведет YAML для POD NGINX-ABC123, но без всего мусора (ссылки владельца, временные метки, значения по умолчанию и т. Д.).
Затем вы можете легко различить или осмотреть этот обрезанный манифест. Это огромное разрешение на время, когда вы хотите быстро понять конфигурацию ресурса, не пробираясь через добавленные поля Kubernetes.
3. View-Secret-секреты декодирования на лету
Что это такое:
Больше нет ручного базового 64 декодирования! Плагин Kubectl-View-Secret заставляет его легкоПосмотреть секреты Kubernetes в простом текстеПолем Обычно, если вы делаетеkubectl get secret my-secret -o yaml
, вы увидите кодированный контент Base64 для каждого ключа. С помощью Secret эти значения автоматически декодируются в строки, читаемые на человеке.
Почему это полезно:
Когда -нибудь нужно было быстро проверить, какое значение хранилось в секрете? Этот плагин спасает вастонныВремени. Вместо копирования закодированной строки и запускаecho ... | base64 -d
Для каждого ключа вы просто запускаете одну команду и видите фактические секретные значения. Это особенно удобно для секретов с несколькими ключами, такими как TLS Certs или конфигурации приложений. Это также отлично подходит для проверки того, что ваши секретные данные верны (в средах разработки/тестирования) без хлопот декодирования. По сути, представление-секретустраняет ручные шагиПри управлении секретами.
Установка:
kubectl krew install view-secret
Пример использования:
Чтобы просмотреть секрет с именем My-Secret в пространстве имен по умолчанию, просто запустите:
kubectl view-secret my-secret --all
Добавление-все флаг показывает все пары клавиш значений. Например, вы можете получить:
key1=supersecret
key2=topsecret
как выход. Больше нет копирования и декодирования-вы сразу видите, что Key1-это «суперкрет», а Key2-«TopSecret». В одной быстрой команде у вас есть секретные значения под рукой(Будьте осторожны с тем, где вы запускаете это, хотя, так как она обнаружит конфиденциальную информацию в вашем терминале)Полем
4. Дерево - визуализируйте владение ресурсами
Что это такое:
Дисплей плагина Kubectl-Treeиерархия владенияв вашем кластере в хорошем формате дерева. Объекты Kubernetes часто владеют или контролируют другие объекты (например, развертывание владеет репликатами, которые владеют стручками). Дерево позволяет вам выбрать ресурс верхнего уровня и увидеть всех его потомков, выложенных как дерево ASCII.
Почему это полезно:
Это фантастика для пониманияКакие ресурсы связаны вместеПолем Например, если у вас есть сложное приложение, вы можете запустить дерево kubectl при развертывании или на пользовательском языке и мгновенно увидеть цепь собственных объектов под ним. Это особенно полезно для CRD, где отношения могут быть не очевидны. Вместо вручную владельцев перекрестного привязки вы получаете четкую картину: например, Statefulset -> Pods -> PVC и т. Д. Это помогает в очистке (чтобы вы удалили иждивенцы) и при устранении проблем каскада. Короче говоря, дерево дает вам вид на птичий глаз о том, как контроллеры Kubernetes организовали ваши ресурсыв иерархииПолем
Установка:
kubectl krew install tree
Пример использования:
Чтобы увидеть, что владеет конкретным ресурсом, запустите:
kubectl tree deploy my-app
Это может вывести дерево всех объектов, созданных развертыванием My-App, таких как репликазы и стручки. Например:
Deployment/my-app
└─ ReplicaSet/my-app-5fd76f7d5c
├─ Pod/my-app-5fd76f7d5c-abcde
└─ Pod/my-app-5fd76f7d5c-fghij
Это говорит вам, что развертывание принадлежит репликат, которая, в свою очередь, имеет две стручки. Вы также можете использовать Kubectl Tree также на других ресурсах высокого уровня (например, вход или экземпляр CRD), чтобы выявить то, что находится под ним. Это превосходный способНавигационные сложные развертыванияи убедитесь, что вы понимаете зависимости от ресурсов.
5. Хвост - бревна потоков из нескольких стручков
Что это такое:
kubectl-хвост (имя плагина Krew простохвост) - удобный плагин дляЖурналы хвоста из нескольких стручковв реальном времени. Это как версия с наддувомkubectl logs -f
, позволяя вам собирать журналы по нескольким стручкам или даже целую метку/селектор. Под капюшоном этот плагин основан на Kail, обеспечивая функциональность, похожие на строги, непосредственно в качестве плагина Kubectl.
Почему это полезно:
При отладке приложения, которое распространяется по многим стручкам (скажем, развертывание с репликами или микросервисом с несколькими компонентами), неудобно открывать отдельные потоки журналов для каждого стручка. kubectl tail решает это, позволив вамНацеливаться на несколько стручков одновременно- Например, по имени развертывания, имени службы или селектора метки. Журналы от всех соответствующих стручков объединены и транслируются на ваш терминал. Вы даже можете отфильтровать сроками (---Санцени) или конкретными стручками. Как отметил Алекс Мосс, одна отличная функция нацелена на ресурс более высокого уровня: например,kubectl tail --svc=my-service
Чтобы увидеть журналы от всех стручков за этой службой. Этот плагин упрощает отладку с несколькими посохами и дает вам консолидированный, живой взгляд на то, что происходит в вашем приложении.
Установка:
kubectl krew install tail
Пример использования:
Вот несколько общих способов использовать хвост Kubectl:
Пространство имен: просмотреть журналы из всех стручков в пространстве имен (например, по умолчанию):
kubectl tail --ns default
Отключением метки: журналы потока из стручков, соответствующих этикетке, например, Все стручки с App = web:
kubectl tail -l app=web --since=10m
(Это показало бы последние 10 минут журналов из каждого POD, помеченного App = web, а затем продолжит потоковой передачу.)
Несколько конкретных стручков: если вы хотите заверить две конкретные стручки:
kubectl tail --pod web-abcde --pod web-fghij --since=1h
В каждом случае журналы от всех целевых стручков будут транслироваться в прямом эфире к вашему терминалу. Плагин даже цветовые коды журналы от POD, что облегчает различие источников. Это простой, но мощный способПроблемы отладки, которые охватывают много стручковбез жонглирования несколькими командами журналов Kubectl.
6. Who-Can-исследуйте разрешения RBAC
Что это такое:
kubectl-который может помочь вам ответить на вопрос:"Кто может сделать x в моем кластере?"Это RBACРазрешения следователяПолем Вы даете ему действие (глагол) и ресурс, и он говорит вам, какие пользователи, учетные записи или роли могут выполнять это действие. По сути, это обертываетсяkubectl auth can-i --list
Логика в простой инструмент запроса.
Почему это полезно:
Kubernetes RBAC может усложняться. Если вы отлаживаете ошибку «разрешение отказано» или просто доступ к аудиту, этот плагин - золото. Вместо вручную осматривать кластерролебинды, вы можете просто спросить: «Кто может удалить стручки в этом пространстве имен?» и получить немедленный ответ. Это особенно полезно дляОтладка проблем RBACи обеспечение правильной установки вашей политики. Например, если развертывание не удалось, потому что оно не может перечислить секреты, кто-Can покажет вам, какая учетная запись нуждается в обновлении роли. Короче говоря, это обеспечивает быструю видимость вкто имеет доступ к чему, спасая вас от охоты через Yaml и Docs.
Установка:
kubectl krew install who-can
Пример использования:
Скажем, вы хотите узнать, кто может удалить стручки в пространстве имен Foo:
kubectl who-can delete pods --namespace foo
Плагин вернет список предметов (пользователей, ServiceAccounts, роли), которые имеют такую возможность. Например, вы можете увидеть, что определенная розовая связка дает учетной записи услуги «развертывания» разрешение удаления на стручках, и, возможно, кластерные администраторы тоже могут. Вы также можете запускать более широкие запросы, например:
kubectl who-can get secret/db-password
Чтобы увидеть, кто может прочитать секрет DB-Password. Это невероятно полезно для аудитов безопасности - квалифицированно убедитесь, что только предполагаемые идентичности имеют доступ. Таким образом, Who-Can превращает RBAC от загадки в ответственный вопрос, помогая вамЗакрепите и устранение неполадок управления доступом вашего кластераПолем
7. Kubectx - быстро переключать контексты
Что это такое:
Kubectx-популярный инструмент командной строки (и плагин Kubectl) дляБыстрый переключение контекстаПолем В Kubernetes, по сути, «контекст», какой пользователь Cluster + вы используете в настоящее время. Если вы работаете с несколькими кластерами (DEV, постановка, PROD или несколько облачных провайдеров), Kubectx позволяет переворачивать между ними с одной короткой командой, а не печатаетkubectl config use-context ...
каждый раз.
Почему это полезно:
Работа в неправильном кластере может быть катастрофической («упс, я просто запустил это в Prod!»). Kubectx делает тривиальным видеть ваши доступные контексты и переключаться в сердцебиение. Это повышает производительность для тех, кто управляет несколькими кластерами, удаляя трение из изменений контекста. Он также поддерживает завершение вкладок, поэтому вы можете быстро автоматически заполнять имена контекста. И новичкам, и профессионалы любят это, потому что это упрощает многокластерЭкономя времякаждый день.
Установка:
Вы можете установить через Krew (есть плагины, названныеCtxинсдля kubectx/kubens). Чтобы использовать Крю, беги:
kubectl krew install ctx
Пример использования:
После установки контексты переключения так же просто, как:
kubectx prod-cluster
Это переключит ваш текущий контекст Kubectl на «Prod-Cluster» (какое бы имя у вас было в KubeConfig). Чтобы перечислить все контексты, просто запустите Kubectx без аргументов, и он покажет интерактивный список. Вы также можетесократить имена контекстаили настроить псевдонимы для удобства. При этом управление несколькими кластерами (например, подпрыгивание между разработкой → постановка → Prod) становится бризом. Соедините его с Kubens (ниже) для полной мощности.
8. Kubens - Скорое переключение пространства имен
Что это такое:
Идеальный компаньон для Kubectx, Kubens позволяет вамбыстро переключитесь между пространствами имен KubernetesПолем А не печатать-n <namespace>
каждый раз или редактируя свой контекст, вы просто бегаетеkubens <name>
И это изменяет ваше текущее пространство имен в контексте KubeConfig.
Почему это полезно:
Пространства имен Kubernetes помогают разделить ресурсы, но утомительно постоянно указывать -n или модифицировать контекст YAML вручную. Кубенс оптимизирует это, делая пространство имен изменяет одну короткую команду. Это отлично подходит для обоих начинающих (которые могут забыть нацелиться на правильное пространство имен), так и передовых пользователей, управляющих мультитенантными кластерами. Это предотвращает ошибки, такие как развертывание в пространстве имен по умолчанию непреднамеренно. В сочетании с kubectx вы можете ориентироватьсякластеры и пространства именс легкостью. Все дело в эффективности: меньше набора печати, меньше переключения контекста в вашей голове и больше внимания уделяется тому, что вы развертываете или отладки.
Установка:
kubectl krew install ns
Пример использования:
Чтобы переключиться на пространство имен Kube-System (в вашем текущем контексте):
kubens kube-system
Ваше пространство имен по умолчанию для команд Kubectl теперь является Kube-System, пока вы снова не переключитесь. Запуск Kubens без аргументов перечисляет все пространства имен в текущем контексте, поэтому вы можете выбрать один интерактивно. Например, если вы манипулируете несколькими проектами в кластере, Kubens позволяет мгновенно прыгать между именами Dev, Test и Prod. Больше не нужно забывать добавить -n и удивляться: «Почему он не может найти мои стручки?» -этот инструмент всегда сохраняет ваш контекст пространства имен в любое время.
9. Kube-Score-проберите ваши Kubernetes Manifestes
Что это такое:kube-score (доступен через плагин Krewсчет) естьИнструмент анализа статического кодаДля Kubernetes Yaml Resources. В более простых терминах это похоже на Linter или «Validator» для ваших файлов развертывания. Вы запускаете его на своих манифестах (развертывания, услуги и т. Д.), И это забивает их и дает рекомендации для улучшений.
Почему это полезно:
Kubernetes с радостью примет конфигурации, которые синтаксически действительны, но следуют плохим практикам. Kube-Score Flags эти проблемыдоВы применяете их. Он проверяет такие вещи, как отсутствующие ограничения ресурсов, ненадлежащие проверки здоровья, устаревшие версии API и многие другие нарушения наилучшей практики. Вывод - это список предложений о том, что улучшить для лучшей надежности и безопасности. Это чрезвычайно полезно для проверки файлов конфигурации - вы ловите ошибки или упущения рано, в CI/CD или во время разработки. По сути, Kube-Scoreдействует как качественные воротаДля ваших Kubernetes проявляются, гарантируя, что они придерживаются рекомендуемых стандартов (так что вы не получаете сюрпризов во время выполнения).
Установка:
kubectl krew install score
(Это устанавливает плагин Kubectl Score, который внутренне использует инструмент Kube Score.)
Пример использования:
Чтобы проанализировать файл (или каталог yamls) для проблем, запустите:
kubectl score -f my-app.yaml
Плагин выведет отчет, например:
[WARNING] Deployment my-app: Container without resource limits ↳ It's recommended to set resource limits for containers to avoid resource hogging. [CRITICAL] Service my-app-service: Uses targetPort name that doesn't match any container port ↳ The targetPort "http" is not found in any container of the associated pods.
Каждое открытие идет с серьезностью и объяснением. Затем вы вернетесь и исправят их в своем YAML. Вы также можете бежатьkubectl score -f <folder>
Сканировать несколько манифестов одновременно. Этот плагин идеально подходит дляпроверка файлов конфигурации Kubernetesкак часть обзоров кода или трубопроводов CI. Это помогает как новичкам, так и экспертам, указывая на потенциальные неправильные задания (прежде чем они попадут в ваш кластер).
10. Sniff - захватить трафик стручков, как профессионал
Что это такое:
Вы когда -нибудь хотели, чтобы вы могли tcpdump внутри капсула Kubernetes? Kubectl Sniff (a.k.a.Кснифф) это плагин, который делает это возможным. Он использует TCPDUMP и Wireshark под капюшоном, чтобыЗахватить сетевой трафик из любого стручкав вашем кластере. С одной командой он запускает удаленный захват пакета на целевом капсуле и потокочит данные, чтобы вы могли открыть в Wireshark или анализировать с другими инструментами.
Почему это полезно:
Отладка проблем сети в Kubernetes может быть сложной - вам часто нужно увидеть необработанный трафик. Sniff автоматизирует тяжелую работу развертывания контейнера для захвата рядом с вашим стручком и передает выход на вашу рабочую станцию. Вы получаете полную мощность Wireshark для осмотра пакетов, с минимальным влиянием на бегущую стручку. Это невероятно полезно для передового устранения неполадок: например, исследование того, почему услуга не отвечает, проверяя, действительно ли POD на самом деле звонит на внешний API или диагностирует странное поведение сетевого общения. Вместо создания команд TCPDUMP на узле или изменяете стручок, вы запускаете один плагин и получаете PCAP о происходящем. Это изменение игры длясетевая отладкаВ кластерах Kubernetes.
Установка:
kubectl krew install sniff
(Примечание: вам понадобится Wireshark, установленная локально для Live Capture, или вы можете вывести в файл PCAP и открыть его позже. Кроме того, узел Target Pod должен позволить запустить захват-плагин может обрабатывать множество сценариев, включая не привилегированные контейнеры, используя Helper Pod.
Пример использования:
Чтобы начать захватывать трафик из POD My-POD в пространстве имен по умолчанию:
kubectl sniff my-pod -n default -c main-container
Здесь -c указывает контейнер (если опущен, он по умолчанию в первый контейнер в стручке). По умолчанию Sniff запустит Wireshark на вашей машине, показывая живой трафик от моей капсы. Вы можете применить фильтры захвата с -f, например -f «порт 80», только для захвата веб -трафика. Если вы предпочитаете сохранить в файле вместо Live View, используйте флаг -O, чтобы написать PCAP:
kubectl sniff my-pod -n default -o output.pcap
После запуска у вас будет выход. Откройте это в Wireshark, и вы сможете анализировать трафик на своем досуге. Kubectl Sniff приносит глубокое понимание сети в Kubernetes - ранее вам, возможно, приходилось выполнить в узле или использовать сложные настройки, но теперь это одна простая команда. Этопродвинутый инструментЭто становится удивительно доступным благодаря этому плагину.
Заключение:
Эти плагины kubectl могут значительно повысить вашу производительность и возможности с помощью Kubernetes. От проверки ваших конфигураций до отладки живых кластеров, они заполняют пробелы, которые Kubectl по умолчанию не покрывает. Лучше всего, они интегрируют плавно - вы вызываете их так, как будто они были родными командами Kubectl. Идите дальше и попробуйте установить несколько, которые пробуждают ваш интерес (через Крю), и вы задаетесь вопросом, как вы управляли Kubernetes без них!
Наслаждаться! (И дайте нам знать в комментариях, каким плагином Kubectl является вашим любимым, или, если мы пропустили тот, что, по вашему мнению, должны были быть в нашем топке 10.)
Оригинал