使用Lens管理Kubernetes集群
本文轉載自微信公眾號「新鈦云服 」,作者黃豪杰 翻譯 。轉載本文請聯系新鈦云服公眾號。
Lens是用于Kubernetes集群的有用,有吸引力的開源用戶界面。
隨著越來越多的工作遷移到容器化環境,管理大量的容器以及它們與其他系統之間的連接變得越來越具有挑戰性。隨著容器化環境的規模和復雜性超出人們的管理能力,諸如Kubernetes之類的容器編排平臺變得越來越重要。但是,此類平臺面臨著自己的管理挑戰,這些挑戰要求指標,可觀察性和用戶友好的界面來呈現其巨大的復雜性。
使用Lens
Lens自稱為“ Kubernetes IDE”,是用于Kubernetes集群的有用,有吸引力的開源用戶界面(UI)。開箱即用,Lens可以使用您的kubeconfig文件連接到Kubernetes集群,并將顯示有關集群及其包含的對象的信息。Lens還可以連接到(或安裝)Prometheus堆棧,并使用它來提供有關群集的指標,包括節點信息和運行狀況。
群集上的工作負載概述
與Kubernetes的儀表板和OpenShift一樣,Lens提供有關群集中對象狀態和Prometheus收集的指標的實時更新。
開始吧
安裝Lens很簡單。AppImage軟件包可用于Linux,并且二進制文件可用于macOS和Windows客戶端。
AppImage是“適用于Linux的可下載文件,其中包含應用程序以及該應用程序需要運行的所有內容。” 打包為AppImage的應用程序就是這樣-一個可以下載并運行的可執行文件。
可以從https://github.com/lensapp/lens/releases/tag/v3.5.0 頁面下載Lens的AppImage。下載后,用chmod標記該文件為可執行文件,然后直接執行該文件或將其復制到$ PATH中的某個位置:
然后,就可以通過在命令行上鍵入lens來啟動Lens。
將Lens連接到Kubernetes集群
啟動Lens后,通過單擊左上角的+圖標并選擇kubeconfig將其連接到Kubernetes集群。接下來,將出現一個下拉框,其中包含?/ .kube / config文件中的任何Kubernetes上下文,或者您可以選擇一個自定義上下文。由于kubeconfig文件中包含有關任何上下文的群集的群集和身份驗證信息,因此,Lens會將每個上下文視為不同的群集。
與OpenShift如何在kubeconfig文件中為您切換到的任何項目(命名空間)自動創建上下文信息相比,這尤其無濟于事。作為負責數百個集群的站點可靠性工程師(SRE),在設置Lens時,我有數十個“集群”可供選擇。在實踐中,我發現最好為任何集群選擇默認上下文。Lens連接后,您就可以管理所有名稱空間和工作負載,而無需全部添加它們。
連接上之后,Lens將顯示大量關于您的集群的信息。您可以看到正在運行的工作負載:pods和部署、守護進程集、cron作業等。您還可以查看配置映射和秘密、網絡信息、存儲、名稱空間和事件的信息。每個都可以讓您深入到給定對象的信息中,甚至可以直接在Lens中編輯對象。
在群集上運行的Pod的詳細信息。
收集有關集群的指標
Lens的一個非常有用的特性是,它可以連接到集群中安裝的Prometheus棧,以收集關于集群及其節點的當前和歷史數據。這對于在Lens UI中獲得關于集群的大致信息非常好,而無需進入外部指示板。但是,所提供的信息并不全面——作為概述是很好的,但是您可能仍然希望使用可視化工具(例如帶有更復雜儀表板的Grafana)來收集更專業的信息。
除了能夠連接集群中提供的現有Prometheus棧外,Lens還可以為您安裝應用程序。這對于在自己的homelabs上運行Kubernetes集群的愛好者來說非常有用,他們可以在一次點擊中部署并連接到Prometheus。
通過Lens安裝Prometheus
只需右鍵單擊Lens UI左上角的群集圖標(當然,在連接到群集之后),然后選擇設置。在“設置”頁面上的“功能”下,您將找到“度量”部分和一個用于安裝Prometheus的按鈕。單擊“安裝”將Prometheus堆棧部署到您的群集,Lens將自動檢測其存在并開始顯示指標。(這將花費一分鐘,新的Prometheus必須首先收集一些指標。)
有關集群的硬件利用率指標
修復kube-state-metrics
盡管Prometheus可以在基于Raspberry Pi的群集上很好地安裝,但kube-state-metrics服務將失敗。當前,kube-state-metrics項目尚未構建AArch64 / ARM64映像,因此從該映像創建的Pod將連續崩潰,并在日志中顯示exec格式錯誤消息。幸運的是,這個問題正在被跟蹤,并且kube-state-metrics項目正在致力于構建基礎設施來生成官方的ARM圖像。不過,在此之前,您可以使用社區開發的映像,并直接使用Lens對kube-state-metrics部署進行補丁。
回到集群信息中,單擊workload,并選擇deployment。集群中所有Kubernetes部署對象的列表將出現在右側的窗格中。您應該能夠通過”Conditiions”下的紅色條目(表明崩潰循環pod問題)輕松地選擇kube-state-metrics部署。
選擇kube-state-metrics部署,對象的詳細信息將從疊加窗口的右側滑出。在此窗口的右上角是鉛筆圖標。單擊該圖標將打開一個編輯器窗口,其中包含kube-state-metrics部署的YAML表示形式。向下滾動,然后編輯.spec.template.spec.containers.image值。默認情況下,該值指向官方鏡像quay.io/coreos/kube-state-metrics:v1.9.5.
將此值替換為“ docker.io/carlosedp/kube-state-metrics:v1.9.5”,然后單擊“保存”。這將觸發部署,以推出具有ARM64架構的新kube-state-metrics pod,它們應該準備就緒,并開始直接向Prometheus報告這些指標。
Lens能讓你看的更加直觀
Kubernetes是復雜的,任何使它更容易可視化和使用Kubernetes集群的工具都可以降低新手的進入門檻,并使有經驗的Kubernetes管理員的生活更加輕松。Lens為管理一個或多個集群提供了一個吸引人的、直觀的、易于使用的UI,可以從10,000英尺的高度俯瞰各個Kubernetes對象的細節。Lens還可以幫助顯示有關群集的指標,并使安裝和使用Prometheus堆棧幾乎可以通過按鈕顯示指標。
Lens給我留下了深刻的印象,并用它來管理自己的家庭實驗室中的多個Kubernetes集群,希望您也覺得它有用。
原文鏈接:https://opensource.com/article/20/6/kubernetes-lens