[Open source, Системное администрирование, Kubernetes] Обзор Lens — IDE для Kubernetes
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В прошлый раз я писал о том, как можно улучшить утилиту kubectl, дополнив и расширив ее функционал, а сегодня зайду с другой стороны: познакомимся с решением, которое позволит забыть о консольных командах и управлять Kubernetes-кластером в графическом интерфейсе. Речь пойдёт про Lens — бесплатное приложение с открытым кодом, которое позиционируется как полноценная Kubernetes IDE. Мы уже кратко рассматривали Lens в сравнительном обзоре GUI для K8s, а теперь попробуем это решение в деталях. Что ж, поехали!Сам проект является кроссплатформенным приложением (работает на Linux, macOS, Windows) на базе фреймворка Electron и ставится как отдельное приложение на вашем устройстве. Изначально разработкой Lens занималась компания Kontena, но после ее поглощения в середине 2020-го года проект перешел в руки Mirantis. Благо, последняя продолжила развивать продукт как Open Source и весьма активно: с мая последней стабильной версией является v.4.2.4, однако уже на подходе v5.0.0 (пока можно попробовать ее beta-релизы). На текущий момент проект имеет более 14 тысяч звёзд на GitHub и большое количество активных пользователей и участников, которые помогают в развитии проекта.В своем описании Lens обещает как снизить входной барьер для тех, кто только начинает работать с Kubernetes, так и существенно повысить продуктивность пользователям с большим опытом.Установка и первый запускВсе, что требуется для установки приложения, — это скачать и поставить нужный пакет для своего дистрибутива. Подробности описаны на странице Getting Started.После запуска приложения понадобится добавить kubeconfig требуемого Kubernetes-кластера. Согласно информации с официального сайта, Lens поддерживает не только «ванильный» Kubernetes, но и любую платформу: EKS, AKS, GKE, Minikube, Rancher, k0s, k3s, OpenShift и т.д. Параллельно можно добавить несколько конфигурационных файлов и потом переключаться между кластерами через боковое меню приложения. При первом знакомстве с Lens я решил использовать Minikube и, когда соответствующий kubeconfig был добавлен, меня встретила панель с уведомлением, что Prometheus-метрики в текущем кластере не собираются. Для устранения этого недостатка Lens предлагает установить свой Prometheus stack, чем я и воспользовался. Делается это одной кнопкой в настройках кластера: Features -> Metrics Stack - Install (кстати, в 5-й версии Lens такой кнопки уже нет — прим.). После небольшого количества времени в Lens начнут показываться графики потребления ресурсов:
Если в кластере уже используется Prometheus для сборка метрик, то Lens автоматически попробует к нему подключиться. А если этого не произошло, то придется поработать напильником, инструкцию по применению которого — см. в репозитории проекта.Знакомство с интерфейсомВсё рабочее пространство можно разделить на три области:
- меню выбора элементов (Cluster, Nodes, Workloads...);
- основное рабочее пространство;
- терминал/текстовый редактор.
Через Lens можно управлять всеми сущностями кластера, а для удобства ресурсы сгруппированы в меню. Для человека, работавшего с Kubernetes, расположение элементов в этом меню является интуитивно понятным и не требует дополнительных пояснений. Например, в блоке Workloads содержатся разделы для доступа к Pod’ам, Deployment’ам, STS и т.д. При переходе в нужный раздел мы получаем возможность поиска по имени или сортировки элемента по нужному столбцу:
При нажатии на конкретный элемент раскрывается дополнительное окно со всей информацией об этом элементе (а-ля describe), в том числе: графики потребления, лейблы, пробы, volumes и т.д. При этом связанные дочерние элементы кликабельны, что позволяет, например, быстро переходить из Pod’а в окно с информацией о его томах, секретах или ConfigMap’ах. К слову, при работе с последними в Lens также не возникает неудобств. Например, в ConfigMap’ах и секретах (помимо удобного отображения сводной информации) мы получаем быстрый доступ к изменению содержимого:
По нажатию на контекстное меню — «⋮» — у каждого элемента открываются дополнительные функции. Например, при работе с узлами так появится возможность shell-доступа к выбранному узлу (откроется встроенный в Lens терминал, о котором расскажу чуть ниже), вызов команд cordon и drain, внесение изменений через встроенный текстовый редактор:
При работе с Pod’ами удобно смотреть их логи, по которым можно также искать и которые легко сразу скачать. Однако важный нюанс в том, что сами логи обновляются не в режиме реального времени, а с некоторой задержкой — это может добавить неудобств:
В блоке Events доступны события в кластере — с возможностью их поиска по ключевым словам и фильтрации по пространствам имен. События с типом Warning по умолчанию подсвечиваются красным, что помогает не пропустить что-то важное. Здесь есть очевидная недоработка интерфейса: отсутствует горизонтальный скролл или возможность изменения ширины столбцов. Поэтому для удобства приходилось либо полностью убирать некоторые столбцы, либо регулировать общий масштаб всего интерфейса:
Терминал Несмотря на то, что Lens предлагает модель управления кластером через веб-интерфейс, среди возможностей этого приложения нашлось место и терминалу — Smart terminal, вкладки которого можно раскрыть в нижней части интерфейса. В терминале предустановлена CLI-утилита kubectl (а также Helm 3), особенностью которой является «синхронизированность» её версии с версией Kubernetes API для выбранного кластера. Такой подход позволяет забыть о необходимости ставить различные версии kubectl при работе с разными K8s-кластерами на одном устройстве:
Впрочем, показалось странным, что несмотря на наличие «smart» в названии этого терминала, автодополнение через <Tab> в нём по умолчанию не работает. Лечится это стандартным добавлением:
echo 'source <(kubectl completion bash)' >>~/.bashrc
В той же, нижней, части интерфейса Lens можно создать вкладку для простого текстового редактора. Он предназначен для редактирования/применения YAML-манифестов в кластере. В редактор встроена проверка структуры YAML-файла, не позволяющая сохранить изменения, если обнаружены ошибки в отступах.Размер рабочих окон терминала или текстового редактора можно регулировать — вплоть до полноэкранного режима. При этом размер шрифта изменить штатными средствами не удастся: здесь поможет только общее масштабирование всех элементов (что неудобно). Об этом даже есть соответствующий issue, к сожалению, не нашедший своей реализации с августа прошлого года.ЧартыВ блоке меню Apps можно произвести инсталляцию Helm-чартов в кластер. Наиболее популярные Helm-репозитории уже добавлены в Lens: остается только активировать их или добавить новые через настройки.При выборе желаемого чарта открывается дополнительное окно с подробной информацией о нём и ссылкой на GitHub:
После ознакомления и нажатия на Install открывается текстовый редактор содержимого values.yaml для корректировки значений, подставляемых в чарт. Там же можно указать имя релиза или выбрать нужный namespace:
После этих несложных манипуляций производится установка чарта с последующим сообщением о результате.РасширенияНачиная с версии 4.0 в Lens присутствует система расширений, которая позволяет добавить в меню свои элементы. Некоторые расширения уже появились — познакомиться с ними можно в репозитории проекта. Например, Lens Resource Map отображает ресурсы Kubernetes и их отношения в виде интерактивного графа в реальном времени (это лучше «потрогать» вживую):
Starboard extension добавляет отдельный пункт в меню для удобства взаимодействия с отчетом аудита безопасности, который формируется одноименным сервисом — Starboard от Aqua Security.Можно найти даже расширение Space Invaders, которое запускает одноименную мини-игру с одной особенностью: противниками являются Pod’ы кластера, а при их уничтожении происходит delete соответствующего Pod’а:
В общем, не рекомендую использовать это расширение в production… И тут всплывает еще один недочет Lens: все устанавливаемые расширения автоматически распространяются на все добавленные кластеры. Возможности точечного отключения расширений нет.А сам сценарий установки расширений обычно сводится к скачиванию архива и указанию пути его расположения в соответствующем меню Lens. Однако в некоторых случаях (например, для Starboard) может потребоваться выполнение дополнительных действий для установки сопутствующих элементов.ЗаключениеЗачастую Lens ставят в один ряд вместе с k9s (см. её обзор здесь), т.к. оба проекта стараются решить одну и ту же потребность: многофункциональный UI для K8s-кластеров. Несмотря на большую популярность консольной утилиты, на мой взгляд, Lens в этом сравнении выглядит более привлекательным, потому что в нём удачно сочетаются как функциональные возможности, так и простота использования. К тому же, стоит упомянуть, что k9s обзавелась платной версией, что ставит под вопрос будущие обновления Open Source-редакции. С другой стороны, что касается повседневного выбора между консолью и графическим IDE, лично я склоняюсь к терминалу. Опустив потенциальные риски, связанные с использованием дополнительной прослойки взаимодействия с K8s, Lens, пожалуй, покрывает 90% типовых задач по управлению кластером, а оставшиеся 10% — это какие-то недоработки интерфейса или баги, которые активно устраняются командой разработки (достаточно взглянуть на статистику активности репозитория в GitHub). В то же время отсутствие горячих клавиш сказывается на производительности работы с Lens, а интегрированный в него текстовый редактор не покрывает все желаемые возможности. В конечном счете это приводит к необходимости использовать для таких целей стороннее ПО, что нарушает главный замысел IDE: заменить несколько «узких» инструментов одним общим. В любом случае здорово, что такой проект активно развивается и поддерживается сообществом: это подтверждает его востребованность среди пользователей. А мне будет интересно следить за его развитием: может быть, уже 5-я версия принесет новшества, способные повлиять на приоритеты в выборе утилиты?P.S.Читайте также в нашем блоге:
- «Обзор k9s — продвинутого терминального интерфейса для Kubernetes»;
- «Headlamp — новый GUI для работы с Kubernetes»;
- «Обзор графических интерфейсов для Kubernetes».
===========
Источник:
habr.com
===========
Похожие новости:
- [Системное администрирование, IT-инфраструктура, Сетевые технологии, Сетевое оборудование] Вебинар «Как обеспечить непрерывность и безопасность ИТ-инфраструктуры филиалов», 6 июля
- [Системное администрирование, Программирование, IT-инфраструктура, Apache] Apache Pulsar как основа для системы очередей
- [Open source, JavaScript, Программирование, Серверное администрирование] zx – bash скрипты на javascript
- [Системное администрирование, *nix, DevOps] В поисках идеального DevOps. Кого сейчас ищут на рынке IT?
- [Системное администрирование, DevOps, Микросервисы, Kubernetes] Что такое service mesh, когда внедрять, альтернативы Istio и другие ответы экспертов с АМА-сессии Слёрм по service mesh
- [Информационная безопасность, Системное администрирование, IT-инфраструктура, Виртуализация] АЭРОДИСК vAIR v2. Часть 3. Железный вопрос. Аппаратные платформы, лицензирование, поддержка… и ФСТЭК
- [Open source, Python, Программирование, Учебный процесс в IT, Криптовалюты] Андрей Карпати: Bitcoin на Python (часть 1) (перевод)
- [Open source, Python, Программирование, Машинное обучение] ABBYY NeoML 2.0: Python и многое другое
- [Системное администрирование, Серверное администрирование, Компьютерное железо, Сетевое оборудование] Тележка, витая пара, три свитча: как я перевозил сервер с нулевым даунтаймом (перевод)
- [Kubernetes] Новый механизм API Priority and Fairness в Kubernetes (перевод)
Теги для поиска: #_open_source, #_sistemnoe_administrirovanie (Системное администрирование), #_kubernetes, #_kubernetes, #_lens, #_blog_kompanii_flant (
Блог компании Флант
), #_open_source, #_sistemnoe_administrirovanie (
Системное администрирование
), #_kubernetes
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:25
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В прошлый раз я писал о том, как можно улучшить утилиту kubectl, дополнив и расширив ее функционал, а сегодня зайду с другой стороны: познакомимся с решением, которое позволит забыть о консольных командах и управлять Kubernetes-кластером в графическом интерфейсе. Речь пойдёт про Lens — бесплатное приложение с открытым кодом, которое позиционируется как полноценная Kubernetes IDE. Мы уже кратко рассматривали Lens в сравнительном обзоре GUI для K8s, а теперь попробуем это решение в деталях. Что ж, поехали!Сам проект является кроссплатформенным приложением (работает на Linux, macOS, Windows) на базе фреймворка Electron и ставится как отдельное приложение на вашем устройстве. Изначально разработкой Lens занималась компания Kontena, но после ее поглощения в середине 2020-го года проект перешел в руки Mirantis. Благо, последняя продолжила развивать продукт как Open Source и весьма активно: с мая последней стабильной версией является v.4.2.4, однако уже на подходе v5.0.0 (пока можно попробовать ее beta-релизы). На текущий момент проект имеет более 14 тысяч звёзд на GitHub и большое количество активных пользователей и участников, которые помогают в развитии проекта.В своем описании Lens обещает как снизить входной барьер для тех, кто только начинает работать с Kubernetes, так и существенно повысить продуктивность пользователям с большим опытом.Установка и первый запускВсе, что требуется для установки приложения, — это скачать и поставить нужный пакет для своего дистрибутива. Подробности описаны на странице Getting Started.После запуска приложения понадобится добавить kubeconfig требуемого Kubernetes-кластера. Согласно информации с официального сайта, Lens поддерживает не только «ванильный» Kubernetes, но и любую платформу: EKS, AKS, GKE, Minikube, Rancher, k0s, k3s, OpenShift и т.д. Параллельно можно добавить несколько конфигурационных файлов и потом переключаться между кластерами через боковое меню приложения. При первом знакомстве с Lens я решил использовать Minikube и, когда соответствующий kubeconfig был добавлен, меня встретила панель с уведомлением, что Prometheus-метрики в текущем кластере не собираются. Для устранения этого недостатка Lens предлагает установить свой Prometheus stack, чем я и воспользовался. Делается это одной кнопкой в настройках кластера: Features -> Metrics Stack - Install (кстати, в 5-й версии Lens такой кнопки уже нет — прим.). После небольшого количества времени в Lens начнут показываться графики потребления ресурсов: Если в кластере уже используется Prometheus для сборка метрик, то Lens автоматически попробует к нему подключиться. А если этого не произошло, то придется поработать напильником, инструкцию по применению которого — см. в репозитории проекта.Знакомство с интерфейсомВсё рабочее пространство можно разделить на три области:
При нажатии на конкретный элемент раскрывается дополнительное окно со всей информацией об этом элементе (а-ля describe), в том числе: графики потребления, лейблы, пробы, volumes и т.д. При этом связанные дочерние элементы кликабельны, что позволяет, например, быстро переходить из Pod’а в окно с информацией о его томах, секретах или ConfigMap’ах. К слову, при работе с последними в Lens также не возникает неудобств. Например, в ConfigMap’ах и секретах (помимо удобного отображения сводной информации) мы получаем быстрый доступ к изменению содержимого: По нажатию на контекстное меню — «⋮» — у каждого элемента открываются дополнительные функции. Например, при работе с узлами так появится возможность shell-доступа к выбранному узлу (откроется встроенный в Lens терминал, о котором расскажу чуть ниже), вызов команд cordon и drain, внесение изменений через встроенный текстовый редактор: При работе с Pod’ами удобно смотреть их логи, по которым можно также искать и которые легко сразу скачать. Однако важный нюанс в том, что сами логи обновляются не в режиме реального времени, а с некоторой задержкой — это может добавить неудобств: В блоке Events доступны события в кластере — с возможностью их поиска по ключевым словам и фильтрации по пространствам имен. События с типом Warning по умолчанию подсвечиваются красным, что помогает не пропустить что-то важное. Здесь есть очевидная недоработка интерфейса: отсутствует горизонтальный скролл или возможность изменения ширины столбцов. Поэтому для удобства приходилось либо полностью убирать некоторые столбцы, либо регулировать общий масштаб всего интерфейса: Терминал Несмотря на то, что Lens предлагает модель управления кластером через веб-интерфейс, среди возможностей этого приложения нашлось место и терминалу — Smart terminal, вкладки которого можно раскрыть в нижней части интерфейса. В терминале предустановлена CLI-утилита kubectl (а также Helm 3), особенностью которой является «синхронизированность» её версии с версией Kubernetes API для выбранного кластера. Такой подход позволяет забыть о необходимости ставить различные версии kubectl при работе с разными K8s-кластерами на одном устройстве: Впрочем, показалось странным, что несмотря на наличие «smart» в названии этого терминала, автодополнение через <Tab> в нём по умолчанию не работает. Лечится это стандартным добавлением: echo 'source <(kubectl completion bash)' >>~/.bashrc
После ознакомления и нажатия на Install открывается текстовый редактор содержимого values.yaml для корректировки значений, подставляемых в чарт. Там же можно указать имя релиза или выбрать нужный namespace: После этих несложных манипуляций производится установка чарта с последующим сообщением о результате.РасширенияНачиная с версии 4.0 в Lens присутствует система расширений, которая позволяет добавить в меню свои элементы. Некоторые расширения уже появились — познакомиться с ними можно в репозитории проекта. Например, Lens Resource Map отображает ресурсы Kubernetes и их отношения в виде интерактивного графа в реальном времени (это лучше «потрогать» вживую): Starboard extension добавляет отдельный пункт в меню для удобства взаимодействия с отчетом аудита безопасности, который формируется одноименным сервисом — Starboard от Aqua Security.Можно найти даже расширение Space Invaders, которое запускает одноименную мини-игру с одной особенностью: противниками являются Pod’ы кластера, а при их уничтожении происходит delete соответствующего Pod’а: В общем, не рекомендую использовать это расширение в production… И тут всплывает еще один недочет Lens: все устанавливаемые расширения автоматически распространяются на все добавленные кластеры. Возможности точечного отключения расширений нет.А сам сценарий установки расширений обычно сводится к скачиванию архива и указанию пути его расположения в соответствующем меню Lens. Однако в некоторых случаях (например, для Starboard) может потребоваться выполнение дополнительных действий для установки сопутствующих элементов.ЗаключениеЗачастую Lens ставят в один ряд вместе с k9s (см. её обзор здесь), т.к. оба проекта стараются решить одну и ту же потребность: многофункциональный UI для K8s-кластеров. Несмотря на большую популярность консольной утилиты, на мой взгляд, Lens в этом сравнении выглядит более привлекательным, потому что в нём удачно сочетаются как функциональные возможности, так и простота использования. К тому же, стоит упомянуть, что k9s обзавелась платной версией, что ставит под вопрос будущие обновления Open Source-редакции. С другой стороны, что касается повседневного выбора между консолью и графическим IDE, лично я склоняюсь к терминалу. Опустив потенциальные риски, связанные с использованием дополнительной прослойки взаимодействия с K8s, Lens, пожалуй, покрывает 90% типовых задач по управлению кластером, а оставшиеся 10% — это какие-то недоработки интерфейса или баги, которые активно устраняются командой разработки (достаточно взглянуть на статистику активности репозитория в GitHub). В то же время отсутствие горячих клавиш сказывается на производительности работы с Lens, а интегрированный в него текстовый редактор не покрывает все желаемые возможности. В конечном счете это приводит к необходимости использовать для таких целей стороннее ПО, что нарушает главный замысел IDE: заменить несколько «узких» инструментов одним общим. В любом случае здорово, что такой проект активно развивается и поддерживается сообществом: это подтверждает его востребованность среди пользователей. А мне будет интересно следить за его развитием: может быть, уже 5-я версия принесет новшества, способные повлиять на приоритеты в выборе утилиты?P.S.Читайте также в нашем блоге:
=========== Источник: habr.com =========== Похожие новости:
Блог компании Флант ), #_open_source, #_sistemnoe_administrirovanie ( Системное администрирование ), #_kubernetes |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:25
Часовой пояс: UTC + 5