Хабрахабр

[Перевод] 12 инструментов, делающих Kubernetes легче

Kubernetes стал стандартным способом, и многие это подтвердят, развертывая контейнерные приложения в разных масштабах. Но если Kubernetes помогает нам справляться с беспорядочными и сложными поставками контейнеров, что поможет нам справиться с Kubernetes? Он тоже может быть сложным, запутанным и трудноуправляемым.

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

N. B. Надеюсь, неведомая летучемышиная зараза, которая укусила собаку, которая укусила панголина, который укусил китайца по странному стечению обстоятельств в Ухане, где расположена биологическая лаборатория BSL-4 уровня, к февралю поутихнет и об 2019-nCoV мы будем только вспоминать, применяя обсценную лексику. И мы сможем провести уже в офлайне Kubernetes База 8–10 февраля 2021, а Kubernetes Мега для продвинутых пользователей K8s 12–14 февраля. Честно, лично я, как редактор, соскучился по драйву, кофебрейкам, спорам и каверзным вопросам спикерам. Ну, или вымрем всей планетой в стиле самых жестоких и трешовых романов Стёпы нашего Королёва, если всевышние силы устали от наших стрёмных шуток вроде Кончиты Вурст, часов патриарха Кирилла и желания Папы Римского поправить слова молитвы «Отче наш».

Но вернёмся к главному.

Goldpinger: Визуализация кластеров Kubernetes

Люди предпочитают смотреть. Графики и диаграммы делают более легким понимание огромной картины. И если учитывать масштабы и сложноть кластера Kubernetes, мы можем использовать на всю катушку эту особенность.

Проект с забавным названием (вероятно тут что-то про агента 007, прим. переводчика) Goldpinger, имеющий открытый исходный код и выпущенный техническим подразделением Bloomberg, представляет собой простой инструмент, работающий внутри кластера Kubernetes и отображающий интерактивную карту отношений между узлами. Нормально функционирующие узлы показываются зеленым цветом, неработоспособные — красным. Достаточно щелкнуть по узлу, чтобы узнать подробности. Также можно настроить API с помощью Swagger, чтобы добавить дополнительные отчеты, характеристики и другие вещи.

K9s: Полноэкранный консольный интерфейс к Kubernetes

Сисадмины любят «однооконные» ништяки. K9s это полноэкранный консольный интерфейс для кластеров Kubernetes. С его помощью вы можете легко и непринужденно просматривать запущенные Pods, журналы и развертывания, имея быстрый доступ к оболочке. Примечание, вам надо выдать пользователям Kubernetes права на чтение уровня пользователя и пространства имен, чтобы K9s работал правильно.

Kops: Консольный ops для кластеров Kubernetes

Эта разработка от команды Kubernetes поможет вам управлять кластерами Kubernetes из командной строки. Он поддерживает кластера, запущенные на AWS и GKE, также работает с VMware vSphere и другими окружениями. В дополнение к автоматизации процессов установки и удаления, Kops может помочь справиться и с другими типами автоматизации. В частности он может создать настройки для Terraform, которыми можно переналить кластер с помощью Terraform.

Kubebox: Терминальная оболочка для Kubernetes

Продвинутая терминальная оболочка для Kubernetes, Kubebox, дает больше, чем старая добрая оболочка к Kubernetes и его API. Кроме прочего умеет в режиме реального времени показывать использование процессорного времени и оперативной памяти, список pods, содержимое журналов, а также запускать редактор настроек. Что еще понравилось, так то, что она доступна в виде отдельного приложения для Linux, Windows и MacOS.

Kube-applier

Kube-applier устанавливается как сервис Kubernetes, получает декларативные настройки кластера Kubernetes из git-репозитория, а затем применяет их к pods в кластере. Каждый раз, когда изменения были внесены, они берутся из репозитория и применяются к запрошенным pods. Это чем-то напоминает Scaffold от Google, но работает для управления целым кластером, вместо одного приложения.

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

Kube-ps1: Умная подсказка командной строки для Kubernetes

Нет, Kube-ps1 это не эмулятор Sony PlayStation для Kubernetes, хотя это было бы изящно. Это простое расширение командной строки Bash, отображающее текущий контекст Kubernetes и пространство имен в подсказке. Kube-shell включает ее в многими другими функциями, но если вам достаточно тольно умной подсказки — Kube-ps1 предоставит вам ее с минимальными затратами.

Kube-prompt

Еще одной минимальной, но весьма приятной в использовании модификацией Kubernetes CLI является Kube-prompt, с помощью которой вы можете войти в интерактивный сеанс с клиентом Kubernetes. Kube-prompt избавляет вас от необходимости вводить kubectl перед каждой командой, а также предоставляет автодополнение с контекстной информацией для каждой команды.

Kubespy: Мониторинг ресурсов Kubernetes в реальном времени

Kubespy от Pulumi это инструмент диагностики, помогающий отлаживать изменения ресурса кластера в реальном времени, предоставляя для этого что-то вроде текстовой панели для управления происходящим. Например, вы хотите посмотреть изменения состояния pod c момента запуска: определение pod пишется в etcd, pod планируется к запуску на узле, kubelet на узле создает pod, и, наконец, pod помечается как запущенный. Kubespy может запускаться как отдельной программой, так и в виде расширения к kubectl.

Kubeval: Проверка настроек Kubernetes

YAML файлы настроек Kubernetes могут быть человекочитаемыми, но это не всегда значит, что они могут быть так же проверены. Легко пропустить запятую или имя, и не найти это до того, как уже станет поздно. Лучше использовать Kubeval, установленный локально или подключенный в конвейере CI\CD. Kubeval берет YAML определение настроек Kubernetes и выдает обратно информацию о корректности. Он также умеет выводить данные в JSON или TAP, а также анализировать исходные шаблоны, на которые ссылаются настройки чарта Helm, не выполняя при этом дополнительные запросы.

Kube-ops-view: панель для нескольких кластеров Kubernetes

У Kubernetes уже есть весьма годная панель для мониторинга общего назначения, но сообщество Kubernetes экспериментирует с другими способами отображения данных, пригодных сисадминам Kubernetes. Kube-ops-view как раз и есть такой эксперимент, он предоставляет возможность обзора нескольких кластеров, можно увидеть потребление процессорного вреемни и оперативной памяти, состояние модулей кластера. Обратите внимание, что нельзя вызывать команды, инструмент только для визуализации. Но предоставляемые отображения четкие и ровные, прямо просятся на на настенный экран в вашем центре поддержки.

Rio: Поставка приложений для Kubernetes

Rio, проект от Rancher Labs, реализует общие методики поставки приложений в Kubernetes, например CD из Git, A\B или сине-зеленые поставки. Он также может выкатывать новую версию вашего приложения как только вы зафиксировали изменения, помогая управлять сложностями с, например, DNS, HTTPS, Service Mesh.

Stern и Kubetail: просмотр журналов в Kubernetes

Stern выдает цветной вывод (как это умеет команда tail) из pods и контейнеров в Kubernetes. Также это наиболее быстрый способ получения вывода нескольких источников в единый поток, который может читаться на лету. В то же время у вас есть различимый взглядом способ (по цвету) разделения потоков.

Kubetail сходным способом соединяет журналы из разных pods в один поток, помечая цветом разные pods и контейнеры. Но Kubetail это скрипт на Bash. так что для его работы не требуется чего-либо еще, кроме оболочки.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»