[Перевод] 11 полезных плагинов для kubectl

Kubectl (Kubernetes Control) — это по сути основной интерфейс для взаимодействия с Kubernetes-кластером. Сторонние разработчики сделали для него много полезных плагинов, которые в той или иной ситуации могут облегчить работу инженера и сэкономить время. В этой статье рассмотрим 11 удобных плагинов для расширения функционала kubectl.

7962c85d10421f98fa53766825f0a059.png

Krew — инструмент для поиска плагинов

Чтобы быстро добавить новые плагины для kubectl, можно воспользоваться утилитой krew. Это своего рода магазин плагинов, похожий на менеджеры пакетов типа yum, apt, apk и brew. С krew вы получите доступ к обширной библиотеке плагинов.

Вот список плагинов, которые мы рассмотрим:

  • Kubectx

  • Kubens

  • Stern

  • Kubectl-who-can

  • K9s

  • Kubepug

  • Rakkess

  • Ketall

  • Kubectl-Score

  • Kubectl-tree

  • Outdated

kubectx

kubectx — это инструмент командной строки, который позволяет пользователям переключаться между контекстами (кластерами) и пространствами имен Kubernetes быстрее и проще, чем с помощью одних только команд kubectl.

В Kubernetes контекст — это комбинация кластера, пользователя и пространства имен. На вашем компьютере может быть настроено несколько контекстов, каждый из которых представляет отдельный кластер Kubernetes, пользователя и пространство имен. Переключение между контекстами необходимо, когда вы работаете с несколькими кластерами или пространствами имен. Потому что вводить полную команду kubectl каждый раз, чтобы переключиться, довольно утомительно.

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

Вот некоторые из ключевых особенностей kubectx:

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

  • Автодополнение. Имена контекстов в kubectx дополняются автоматически. Это упрощает переключение.

  • Список контекстов. Используйте команду kubectx без аргументов, чтобы вывести список всех доступных контекстов.

Repo URL: https://github.com/ahmetb/kubectx

kubens

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

С Kubens вы можете быстро переключаться между пространствами имен в контексте Kubernetes и настраивать активное пространство имен для использования с kubectl. Это может быть особенно полезно при работе с несколькими пространствами имен в одном кластере. Нет необходимости каждый раз вводить полную команду kubectl.

Repo URL: https://github.com/ahmetb/kubectx

stern

7c8da83b4f535b2491385ca6e2a12798.png

stern — это инструмент для отслеживания и фильтрации журналов из нескольких модулей Kubernetes одновременно. Он позволяет просматривать журналы из нескольких контейнеров и модулей в одном потоке. Это упрощает отладку.

Repo URL: https://github.com/stern/stern

kubectl-who-can

kubectl-who-can — это инструмент командной строки, который помогает определить, какие пользователи или учетные записи служб имеют доступ к определенным ресурсам в вашем кластере. Проверяйте кто и какие действия может выполнять, например, создавать, обновлять или удалять ресурсы.

Repo URL: https://github.com/aquasecurity/kubectl-who-can

k9s

6ebd56ae0c6c10691497752f3740857b.png

k9s — это инструмент пользовательского интерфейса на основе терминала, который предоставляет удобный интерфейс для управления кластерами Kubernetes. Он позволяет интуитивно просматривать ресурсы Kubernetes: модули, сервисы и развертывания. Так же он позволяет взаимодействовать с ними. Вы можете использовать k9s для мониторинга работоспособности ваших приложений, просмотра журналов и выполнения таких действий, как масштабирование или удаление ресурсов.

Repo URL: https://github.com/derailed/k9s

kubepug

742f474071b822cbbd9223c1008efd70.png

Этот плагин обнаруживает проблемы и потенциальные уязвимости в вашем конфигурационном файле Kubernetes и предлагает рекомендации по исправлению. Например, он поможет вам найти устаревшие и удаленные API в ваших ресурсах Kubernetes перед переходом на новую версию.

Repo URL: https://github.com/rikatz/kubepug

rakkess

25ef9b57992e2d15614a2bde3f78af95.png

Многие администраторы кластеров Kubernetes реализуют принцип наименьших привилегий (least privilege) для безопасности своих кластеров.

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

Repo URL: https://github.com/corneliusweig/rakkess

kube-score

c877b78dbae0f7f047497bfb21d4719a.png

В конвейерах CI/CD обычно есть статический анализ для проверки качества кода разработчика, но как насчет манифестов?

kube-score — плагин, который оценивает качество на основе определенных правил для развернутых ресурсов Kubernetes. Он поможет выявить, как соблюдаются или не соблюдаются некоторые рекомендации и практики. 

Repo URL: https://github.com/zegl/kube-score

ketall

d04702b718c470fc41ba8f9ee7c3ac96.png

Вы когда-нибудь сталкивались с тем, что при выводе kubectl get all отсутствуют некоторые ресурсы?

Команда kubectl get all не дает список всех ресурсов. Она возвращает только те, у которых определено значение kind: all в API-файлах.  Поэтому некоторые ресурсы надо искать самостоятельно. Плагин ketall сэкономит ваше время и выведет список всех ресурсов в кластере, в пространстве имен, по меткам и т. д.

Repo URL: https://github.com/corneliusweig/ketall

kubectl-tree

7f72bbb8886b1592f593af08a2c2c18a.png

Иногда сложно понять, как связаны между собой разные объекты в Kubernetes. Из-за этого можно потратить уйму времени при устранении неполадки.

Плагин kubectl-tree поможет понять отношения между объектами Kubernetes в действующем кластере и сократит время устранения неполадок.

Repo URL: https://github.com/ahmetb/kubectl-tree

outdated

0e6920d29a0859e62d7eedba345a357b.png

Этот плагин ищет устаревшие версии компонентов Kubernetes, выводит информацию о них и подсказывает, как их можно обновить.

Repo URL: https://github.com/replicatedhq/outdated

Итоги

Мы рассмотрели 11 особенно полезных плагинов, которые, на наш взгляд, заслуживают внимания и облегчают работу с kubectl. Но на самом деле их гораздо больше. Чтобы найти их, используйте krew. Он может похвастаться впечатляющей библиотекой из 206 различных плагинов. 

Если вы хотите научиться работать с Kubernetes на продвинутом уровне, заглянуть под капот и научиться создавать отказоустойчивые кластеры, приходите на наш курс «Kubernetes Мега». Ближайший поток стартует 28 августа.

☝️ Ознакомиться с программой и записаться на поток можно на нашем сайте.

© Habrahabr.ru