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