# GUI management Lens

<https://habr.com/ru/companies/first/articles/677420/>

<https://github.com/MuhammedKalkan/OpenLens>

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-18e9b23b9f6fe443087878c980b9c5a325ff1088%2F749a2bcd7869138bcfaac95a55d573f5.jpg?alt=media)

Управление кластером 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](https://github.com/lensapp/lens).

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

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-dcb8a373819ffdd003a840b79fda6b6319b1f9d4%2Fb5fc87c49beac0e3fb54b437acb2be72.png?alt=media)

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

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

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-f6f57942bdcde53fa59fa967433500fc76a9078c%2Fdf8ac44b0637defa90ea5408d76bd8b3.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-30f04c32eeb9cd3b6cd0b3e721976674fe996313%2Fbfc470050a50018c258b947b9a453de0.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-ab2fed8c7fb2cdeda4840b9621dd25a6bc62bbdd%2Fa8529f8df05905eb2d2341c7f850da13.png?alt=media)

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

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-dc9e07474175d32aca775f929b5d536f26994103%2Faae649ce078dfc749467cb6ea2272637.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-04b10daeb3a218767bb024fb0af63d901693142e%2F7d6469c6dd4ae4c3dddbd7d80f3f2448.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-e61950ebe9455cab01abea46d98e9d279aab3aa0%2F1b967b5f640c17dc1c8100543e495e51.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-2802b2ba7206ce60247dfe94e711a2515fd5b982%2F0d571456969df4355c2d8bb22b1e449f.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-cbd7023d4fad900a97f4d0acc2d7a4af5a702093%2F4aba2387278c513ec46bd1a14ff6391c.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-3a15c81d8ee2c822c7444d712a5a8694145e869d%2Ff48ae99bf070fe6633b9d5b87d91b161.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-ff2791cd7022fca25dbec5025187391b220af905%2F24fd5dc5cf78cc8a5d56bd4d853cb75b.png?alt=media)

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

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-916c1e9f680a5123b5c4a02852cada950e5ba1c0%2Fae1a214c8ffaefc92477e78a6ba47b89.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-da92f1eb45f6eb5ac3309faed22376a3ff703e17%2F7c8112445ab25684b0159bb7637f5fb8.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-779f1c6413c56158556da58773dcb5b2e96985ea%2F16fd6123aae47154438e9c99c382831d.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-2e300180bcd3dc77b96abe37a66fb8f6a29b2ef7%2Fa3ab9a991893b81c1a339de3aa6f67ee.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-d2c00dcce14af2c63b0ac28ca2f0e9067e674064%2F64b450fedaf8d37b5ca7e8ee31eec487.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-1c1fbef8d67279263b3ec224e071a99d120f8ba1%2F64a352276ad99dbaa5d4dbb9cde26515.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-8f0f9cbc6b4f953376eceed08e99e0a3a4c9f1fa%2F728ff6a18762d152ccdd354ea91c5ed9.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-60e096a483d67328b2ec79be1899810a0fe83524%2F0f5d7ad041917014c82bfc36f70599fd.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-edcba5731c7cdedfcd501a5d06cc457ecb946d60%2F5f468dabab5339529e883c2ff6e69628.png?alt=media)

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

![](https://296194292-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLoAqAoOfr7XVUQw7Gff8%2Fuploads%2Fgit-blob-06c852b1cfb680db7f8dd7facf61800f78cbb030%2F2490da4fcc4b0b5c451bb6e06763fe55.png?alt=media)

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