K8S 實用工具之三 - 圖形化 UI Lens

東風微鳴發表於2023-03-05

開篇

? 引言

  • 磨刀不誤砍柴工
  • 工欲善其事必先利其器

像我這種,kubectl 用的不是非常溜,經常會碰到以下情況:

  • 忘記命令,先敲 --help,再敲命令,效率低
  • 忘記加 -n 指定 namespace
  • 太長的命令經常記錯或敲錯,比如 kubectl exec -it...
  • 無法快速將日誌、yaml 複製出來
  • 對於 CRD 類資源,記不住 CRD type,查不到相關資訊
  • 無法掌握叢集的健康及監控狀態
  • Windows 機器命令列不好用
  • ……

如果你的工作機(前置機、跳板機、操作機、堡壘機…)是 Windows 桌面環境。那麼我強烈推薦你使用這個 K8S 實用工具:圖形化 UI Lens

? Lens 簡介

Kubernetes IDE(整合開發環境),可用於:

  • 開發
  • 除錯
  • DevOps
  • 運維
  • 監控

Lens 是你唯一需要的 IDE ,它可以用來控制你的 Kubernetes 叢集。它建立在開源和免費的基礎上。

Lens UI

一個為那些每天使用 Kubernetes 工作的人設計的 IDE,漂亮且強大。

? Lens 優勢

  • ? 移除複雜性:不需要學習 kubectl 命令就可以探索和導航 Kubernetes 叢集。對於剛起步的開發者來說是非常棒的。
  • ?️ 實時可觀察性:實時檢視實時統計、事件、日誌流。沒有轉圈圈的載入,重新整理或等待螢幕更新。
  • ? 定位和除錯:在儀表板上檢視錯誤和警告,然後單擊檢視詳細資訊。再次單擊以檢視日誌或獲取命令列。
  • ?️ 在你的個人電腦上執行:MacOS, Windows 和 Linux 上的獨立應用程式。1 分鐘安裝。不需要在叢集中安裝任何東西。
  • ? 開源免費:Lens 基於開源平臺,擁有活躍的社群,並得到 Kubernetes 和雲原生生態系統先鋒的支援。
  • 可和任何 Kubernetes 一起工作:使用 EKS, AKS, GKE, Minikube, Rancher, k0s, k3s, OpenShift…?他們所有都可以正常執行。只需為您想要使用的叢集匯入 kubeconfigs。

個人使用體驗

無障礙使用

Lens 有一個統一的目錄(Catalog)。將所有叢集、服務、工作負載、工具、自動化和相關資源集中在一起,以便輕鬆訪問。

而且在 Catalog 上,可以很方便進行瀏覽和組織。使用搜尋、過濾、分類和標籤來訪問你需要工作的資源比以往任何時候都更容易。

Lens Catalog

效率高

Lens 的特色是左邊有一列,叫做:Hotbar。就是主導航,允許使用者在桌面應用程式中構建適合自己的「工作流」和「自動化」。使用者可以透過分配不同的標籤、顏色和圖示來自定義 Hotbar 中的專案,以方便回憶。比如這樣:

Lens Hotbar

它還有類似 VSCode 的命令皮膚。命令皮膚允許使用者執行特定的鍵盤快捷鍵,從而使最常見的任務變得更容易。在使用 Lens 時提高可訪問性和效率。Windows 的快捷鍵是:Ctrl + Shift + p。如下圖:

Lens 命令皮膚

監控整合

Lens 內建的視覺化。Lens 與 Prometheus 整合,可以透過總容量、實際使用、請求和限制視覺化和檢視資源使用指標(包括 CPU、記憶體、網路和磁碟)的趨勢。為每個 k8s 資源自動生成詳細的視覺化。如下圖:

Lens CPU 記憶體 pod

Lens Node 監控

Lens Overview

Lens Pod 監控

所有 K8S 資源觸手可達

智慧終端功能。Lens 智慧終端自帶 kubectl 和 helm,自動同步 kubectl 的版本,以匹配當前選擇的 K8S 叢集 API 版本。Lens 會自動分配 kubeconfig 上下文來匹配當前選擇的 K8s 叢集。

Lens 智慧終端

K8S 資源模板

自帶全量 K8S 資源模板,而且是有豐富資訊的模板,直接在模板上照貓畫虎就可完成各類資源的建立,媽媽再也不用擔心我忘記 K8S Resources 的 Spec 了!

Lens 資源模板

快速部署

Helm Chart。Lens 自帶 Helm Chart 管理,允許發現和快速部署數以千計的公開可用的 Helm Chart 和管理您自己的儲存庫。探索已安裝的 Helm Chart ,只需一次點選即可修訂和升級。

如下圖:

Lens Helm Chart 倉庫

Helm Chart 一鍵升級

Lens Helm 已安裝資源展示

外掛!

支援外掛。輕鬆地從社群和雲本地生態系統供應商新增 Lens 擴充套件或構建自己的。Lens Extensions 用於新增自定義功能和服務,以加速與 Kubernetes 和其他雲原生技術整合的所有技術的開發流程。

這裡推薦幾個實用的外掛:

lens-certificate-info

檢視證書資訊。檢視含有證書資訊的 Secret,效果如下:

lens-certificate-info

lens-debug-tools

配合 K8S 1.16 的新功能,可以在想要除錯的 Pod 裡插入帶有豐富工具集的 Sidecar(為了追求 Size,一般映象都是非常精簡,導致常用命令缺失,除錯困難),方便除錯。

還可以配置除錯用的映象,還貼心的給了 3 個推薦:

Name Description Link
busybox Default value https://hub.docker.com/_/busybox
markeijsermans/debug https://hub.docker.com/r/markeijsermans/debug
praqma/network-multitool https://hub.docker.com/r/praqma/network-multitool

安裝完成後 Pod 頁面會多一個按鈕:

Lens Debug Pod 按鈕

有 2 種模式:

一種是「Run as debug pod」,就是在同一臺 Node 上啟動一個新 pod,可以用來分析除錯與 Node 有關的問題。自動執行的命令如下:

kubectl run loki-promtail-5d5h8-debug -n loki-stack -it --image=busybox --restart=Never  --attach  --overrides='{ \"spec\": { \"nodeName\": \"izuf656om146vu1n6pd6lpz\" } }' --labels=createdBy=lens-debug-extension --rm

另一種是「Run as emepheral container」,需要啟用 K8S 1.16 的新功能才能使用。直接是在要除錯的 Pod 裡啟動一個 Debug Sidecar,就可以分析除錯與 Node、Pod有關的問題。自動執行的命令如下:

kubectl debug -i -t -n loki-stack loki-promtail-5d5h8 --image=busybox --target promtail --attach

@nevalla/kube-resource-map

資源拓撲圖。這個真的是心頭好。來看看 Monitoring 的拓撲圖:

從Helm,到 StatefulSet,到 Pod,到 SVC,再到 ConfigMap、Secret,一應俱全。

Lens 拓撲圖

✍ 總結

Lens 是一個Kubernetes IDE,在桌面環境下使用它,來開發、除錯、DevOps、運維和監控。

它有很多強大的功能,其中:Catalog、Hotbar、命令皮膚、監控、智慧終端、資源模板、Helm Chart 管理和外掛 這些功能一定要試一試,體驗飛昇!

一起使用吧~ ???

三人行, 必有我師; 知識共享, 天下為公. 本文由東風微鳴技術部落格 EWhisper.cn 編寫.

相關文章