Управление кластером Kubernetes чаще всего осуществляется при помощи командной строки и утилиты kubectl. Однако, кроме этого распространенного способа, есть и другие. Например, с помощью программы Lens.

Lens — программное обеспечение, которое позволяет полноценно управлять кластером Kubernetes через графический интерфейс пользователя — GUI (graphical user interface).

В качестве плюсов Lens можно выделить следующие особенности:

  1. Бесплатный продукт с открытым исходным кодом.

  2. Поддержка всех основных типов кластеров на bare metal, on-premise, cloud computing (облачные решения), public clouds.

  3. Доступен весь набор функций для управления кластером и всеми его объектами — управление подами, namespace, deployment, service и т. д.

Разработчиком программы является американская компания Mirantis, специализирующаяся на на разработке программного обеспечения для облачных вычислений с открытым исходным кодом. Исходный код программы выложен на GitHub

Те, кому требуется работать в команде, могут воспользоваться платными тарифами. Главная особенность платного тарифа — наличие функции Team Management, которая представляет собой пространство для команд с возможностью организации совместной работы и централизованного доступа к кластеру. При этом набор функций одинаков как для платной версии, так и для бесплатной. 

Установить Lens можно на любую операционную систему – Windows, macOS, Linux. Пользоваться программой могут только зарегистрированные пользователи. При первом запуске необходимо создать учетную запись на официальном сайте Lens или авторизоваться при помощи GitHub/Google.

Подключение к кластеру Kubernetes осуществляется при помощи конфигурационного файла кластера, который по умолчанию находится в директории /home/<имя_пользователя>/.kube и называется config

Чтобы добавить файл с конфигом, необходимо нажать на синюю кнопку со знаком «плюс» которая находиться справа снизу. Далее следует выбрать директорию, где хранится файл, и нажать на кнопку sync. После этого кластер отобразится в главном меню в самом конце списка. 

При подключении к кластеру Kubernetes, Lens использует собственный прокси-сервер - Lens K8S Proxy.

После перехода на страницу кластера отображается главная страница с метриками Prometheus. Если метрики Prometheus у вас не используются или не настроены, то будет отображаться надпись Metrics are not available.

Слева находится меню в котором перечислены все компоненты кластера – Nodes, Workloads, Config, Networks, Storage, Namespaces:

Также предусмотрены отдельные разделы для просмотров событий (Events), для работы с Helm чартами (Helm) и работы с политиками доступа (Access Control).

Для просмотра информации о нодах кластера необходимо перейти в раздел Nodes:

Для отображения секретов (Secrets) необходимо перейти в раздел Config и выбрать параметр Secrets:

Чтобы просмотреть все доступные типы сетей (Service), необходимо перейти в раздел Network и выбрать параметр Services:

Для отображения всех доступных namespace в кластере необходимо перейти в раздел Namespaces:

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

Чтобы найти информацию о подах а также отобразить все доступные Deployments, Daemon Sets, Stateful Sets, Replica Sets, Jobs и Cron Jobs необходимо раскрыть раздел Workloads и перейти в пункт Overview

Отобразим список всех подов в системе, перейдя в пункт Pods:

Чтобы выбрать необходимый namespace, необходимо найти его в выпадающем списке, который находится справа сверху. По умолчанию отображаются все поды, которые находятся в namespace с именем default.

Чтобы отобразить информацию о поде (эквивалент команды kubectl describe pod), достаточно щелкнуть по имени пода. Откроется дополнительное окно, в котором будет отображена вся информация о поде, включая его полное имя, namespace, labels, статус пода и т. д.:

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

Для того что попасть внутрь контейнера, необходимо выбрать опцию Pod Shell. После этого внизу отобразится интерфейс командной строки, а также запустится сама оболочка внутри контейнера (команда kubectl exec -i -t):

Для просмотра логов пода выберите опцию Pod Logs (эквивалент команды kubectl logs). Логи также будут отображены в терминале, который появится снизу:

А чтобы отредактировать конфигурационный файл пода, воспользуйтесь опцией Edit (эквивалент команды kubectl edit), которая отобразит терминал — в нем можно вносить необходимые правки:

Для сохранения изменений необходимо нажать на кнопку Save & Close. Изменения не будут применены до перезагрузки пода. Чтобы выполнить перезагрузку, перейдите в меню Workloads, далее выберите раздел Deployments. Найдите нужный deployment и кликните по нему. В появившемся окне, справа сверху нажмите на кнопку Restart:

Для просмотра всех доступных событий в кластере следует перейти в раздел Events:

Для просмотра более подробной информации о событии необходимо просто по нему щелкнуть:

Также в Lens предусмотрена работа с чартами Helm. Для этого существует отдельная вкладка с именем Helm:

В списке представлены только самые популярные чарты. Для установки необходимо кликнуть по нужному чарту и в открывшемся меню нажать на кнопку Install. Также в этом окне будет представлена вся основная информация о чарте:

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

Комментарии (6)


  1. ColdPhoenix
    19.07.2022 13:24
    +3

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


    1. GT_Volk
      20.07.2022 08:35

      Многим в сообществе не по душе эта их новая "фича" уже есть очищенные от обязательной регистрации, и описания способов ее скипнуть. Для себя выбрал самый просто способ:

      # hosts
      127.0.0.1       app.k8slens.dev


      1. UltraMax
        20.07.2022 16:59

        Спасибо, взял на заметку1

        Немного смущает внизу надпись, что Lens is not connected with your Lens id, но зато иконка в трее нормально видна, а не как у OpenLens такого же цвета, как и сам трей (темая) из за чего там тупо пустое место


  1. skygtr99113
    20.07.2022 07:11

    Я не знаю почему не стоит использовать. На работе офлайн кластер. Конфиг подхватывает через раз. А когда и сработало, то видоизменяет его, почему-то. Приложение в принципе не должно менять конфигурацию без явных подтверждений пользователя. Ну да ладно. Плохо, что после этого kubectl перестает работать. У меня дебиан 11 и программа запускается 30-40 секунд. Это очень долго


  1. select26
    20.07.2022 19:20

    Вся конфигурация из кода в любом случае. Иначе зачем куб?
    А визуализация через Prom -> Grafana etc.
    Зачем он вообще? Непонятно.
    Наверное опять для тех, кому документацию читать неохота.


  1. shurup
    22.07.2022 03:40

    Год назад на Хабре уже был обзор Lens.