12項工具使Kubernetes更易用:可視化、監(jiān)視、命令行、多集群管理...
利用這些Kubernetes 工具的優(yōu)勢來改善監(jiān)視,命令行操作,多集群管理等。
Kubernetes已成為大規(guī)模部署容器化應用程序的標準方法(許多人會說是標準方法)。但是,如果Kubernetes幫助我們馴服了龐大而復雜的容器部署,那么有什么可以幫助我們馴服Kubernetes的呢?它也可能是復雜,混亂且難以管理的。
隨著Kubernetes的發(fā)展壯大,毫無疑問,它的許多問題都將在項目內(nèi)部得到馴服。但是有些用戶并沒有等著Kubernetes變得更容易使用,他們已經(jīng)針對生產(chǎn)中Kubernetes的許多常見問題推出了自己的解決方案。
Goldpinger:可視化Kubernetes集群
人類是視覺生物。圖形和圖表使我們更容易理解全局??紤]到Kubernetes集群的范圍和復雜性,可以使用可以獲得的所有視覺幫助。
彭博社的技術(shù)部門開源的這個有趣的名字叫Goldpinger的工具很簡單,它在Kubernetes集群中運行,并顯示節(jié)點之間關(guān)系的交互式地圖。健康的節(jié)點顯示為綠色,不健康的節(jié)點顯示為紅色。只需單擊一個節(jié)點以獲取詳細信息??梢允褂肧wagger自定義API,以引入其他報告,指標或其他集成。
K9s:全屏Kubernetes CLI UI
管理員喜歡“單一窗格”實用程序。K9s是Kubernetes集群的全屏CLI UI。它可以快速查看正在運行的Pod,日志和部署的視圖,并可以快速訪問Shell。請注意,將需要授予用戶Kubernetes在用戶和名稱空間級別的讀取特權(quán),以使K9正常工作。
Kops:Kubernetes集群的命令行操作
Kops由Kubernetes團隊開發(fā),可讓命令行管理Kubernetes集群。它支持在AWS和GCE上運行的集群,以及正在運行的VMware vSphere和其他環(huán)境。除了自動進行設置和拆卸過程外,Kops還可以幫助進行其他類型的自動化。例如,它可以生成Terraform配置,以允許使用Terraform重新部署群集。
Kubebox:Kubernetes的終端控制臺
Kubebox是Kubernetes的高級終端控制臺,不僅為Kubernetes及其API提供了shell。它提供內(nèi)存和CPU利用率,窗格列表,運行日志和配置編輯器的交互式顯示。最重要的是,它可以作為適用于Linux,Windows和MacOS的獨立應用程序使用。
Kube-applier
作為Kubernetes服務運行,Kube應用程序從Git存儲庫中獲取Kubernetes集群的聲明性配置文件,并將其應用于集群中的Pod。每當對定義文件進行更改時,都會將它們從存儲庫中提取并應用于相關(guān)的廣告連播。本質(zhì)上,適用于Kube的應用程序類似于Google的Skaffold,但它用于管理整個Kubernetes集群而不是單個應用程序。
Kube-applier可以按計劃或按需應用配置更改。它會在每次運行時記錄其行為,并提供與Prometheus兼容的指標,因此您不必擔心它如何影響集群行為。
Kube-ps1:Smart Kubernetes命令提示符
不,Kube-ps1并不是適用于Kubernetes的第一代Sony PlayStation模擬器(盡管那很漂亮)。這是對Bash的簡單補充,可在提示中顯示當前的Kubernetes上下文和名稱空間。Kube-shell包括此功能以及許多其他功能,但是如果只想提供更智能的提示,Kube-ps1幾乎不會帶來任何開銷。
Kube-prompt:交互式Kubernetes客戶端
對Kubernetes CLI的另一種最小但有用的修改,Kube-prompt允許輸入相當于與Kubernetes客戶端的交互式命令會話的內(nèi)容。Kube提示不必鍵入kubectl來為每個命令添加前綴,并為每個命令提供帶有上下文信息的自動完成功能。
Kubespy:Kubernetes資源的實時監(jiān)控
Pulumi的Kubespy是一種診斷工具,可實時跟蹤對Kubernetes資源的更改,從而提供了一種實時的文本視圖儀表板。例如,可以在啟動時查看Pod狀態(tài)的變化:將Pod定義寫入Etcd,將Pod計劃在節(jié)點上運行,在該節(jié)點上的Kubelet創(chuàng)建Pod,最后將Pod標記為正在運行。Kubespy可以作為獨立的二進制文件運行,也可以作為Kubectl的插件運行。
Kubeval:驗證Kubernetes配置
Kubernetes的YAML配置文件本來應該是人類可讀的,但這并不總是意味著它們可以被人類驗證。很容易錯過逗號或胖手指的名字,直到為時已晚才發(fā)現(xiàn)它。最好使用Kubeval。Kubeval在本地使用或集成到CI/CD流水線中,接受Kubernetes YAML配置定義并報告其有效性。它可以產(chǎn)生JSON或TAP格式的輸出,甚至可以解析Helm圖表配置中引用的源模板,而無需其他提示。
Kube-ops-view:多個Kubernetes集群的儀表板
Kubernetes有一個有用的儀表板,可用于通用監(jiān)控,但是Kubernetes社區(qū)正在嘗試其他方法,以向Kubernetes管理員有用地呈現(xiàn)數(shù)據(jù)。Kube-ops-view是這樣的一種實驗。它提供了以圖形方式呈現(xiàn)的多個Kubernetes集群的概覽視圖,因此可以一目了然地看到集群中整個CPU和內(nèi)存使用率以及Pod的狀態(tài)。請注意,它不允許調(diào)用任何命令;僅用于可視化。但是,它提供的可視化效果驚人且高效,是為運營中心中的大屏監(jiān)控所生。
Rio:Kubernetes的應用程序部署引擎
Rio是Rancher Labs的一個項目,它在Kubernetes中實現(xiàn)了常見的應用程序部署模式,例如從Git和A/B持續(xù)交付或藍/綠部署。每次提交提交時,Rio都可以部署新版本的應用程序,從而有助于管理DNS,HTTPS和服務網(wǎng)格等復雜性。
Stern和Kubetail:Kubernetes的日志尾礦
通過Stern,可以從Kubernetes中的容器和容器中生成顏色編碼的輸出(按照tail命令)。這是一種將來自多個資源的所有輸出傳輸?shù)絾蝹€流中的快速方法,一目了然。同時,可以一目了然地(顏色編碼)來區(qū)分流。
Kubetail同樣將來自多個Pod的日志聚合到單個流中,并對不同Pod和容器進行顏色編碼。但是Kubetail是Bash腳本,因此只需要一個shell。