在 DevOps 生態(tài)系統(tǒng)中,擁有出色的 DevOps 工具來(lái)減輕人為操作非常重要。每個(gè) DevOps 階段都可以使用大量的 DevOps 工具。
如果您在 DevOps 領(lǐng)域中工作并在容器中運(yùn)行應(yīng)用程序,那么 Kubernetes 是必備工具之一。有數(shù)百種工具可與 Kubernetes 配合使用以添加更多功能。我說(shuō)的是用于更好地管理,安全性,儀表板和 Kubernetes 集群監(jiān)控的工具。
這是一系列令人驚奇的工具,它們?yōu)槟?Kubernetes 增加了更多功能。
Helm
Helm 是 Kubernetes 的軟件包管理器,可以輕松地獲得高度可重復(fù)的應(yīng)用程序和服務(wù),或在許多不同的場(chǎng)景中使用它們,從而使將它們輕松部署到典型的Kubernetes集群中變得更加容易。使用 Helm,您可以查找,共享和使用為 Kubernetes 構(gòu)建的軟件。
它使用稱為 Helm Charts 的圖表來(lái)定義,安裝和升級(jí)復(fù)雜的 Kubernetes 應(yīng)用程序。
Helm功能:
使用圖表處理所有Kubernetes應(yīng)用程序的復(fù)雜性
使用升級(jí)和自定義鉤子輕松更新內(nèi)容。
可以在公共或私有服務(wù)器上輕松共享圖表。
只需一個(gè)命令即可輕松回滾
提高開(kāi)發(fā)人員的生產(chǎn)力并增強(qiáng)操作準(zhǔn)備
Flagger
Flagger 是 Kubernetes 的漸進(jìn)交付 operator。
它使用 Istio,App Mesh,Nginx,Linkerd,Contour,Gloo,Skipper 路由進(jìn)行流量轉(zhuǎn)移,并使用 Prometheus 進(jìn)行金絲雀分析,從而自動(dòng)促進(jìn)金絲雀部署。在 Canary 部署中,您將發(fā)行版發(fā)布給一小群用戶,對(duì)其進(jìn)行測(cè)試,如果運(yùn)行良好,則將發(fā)行版發(fā)布給所有人。
它使用集群中運(yùn)行的服務(wù)網(wǎng)格來(lái)管理一個(gè)部署和另一個(gè)部署之間進(jìn)行的通信。為了將流量轉(zhuǎn)移到Canary,它會(huì)測(cè)量性能指標(biāo),例如平均請(qǐng)求持續(xù)時(shí)間,HTTP請(qǐng)求成功率,pod運(yùn)行狀況等。
Flagger可以針對(duì)幾種部署策略(如Canary,A / B測(cè)試,藍(lán)/綠部署)運(yùn)行自動(dòng)化的應(yīng)用程序分析,升級(jí)和回滾。
Kubewatch
Kubewatch 是開(kāi)源的 Kubernetes 觀察程序,它通過(guò) slack 發(fā)送通知。
它是用 Go 編程編寫(xiě)的,由 Bitnami Labs 開(kāi)發(fā)。它用于監(jiān)視Kubernetes資源并通知是否有任何更改。
您可以通過(guò) kubectl 或使用 helm 圖表來(lái)安裝 Kubewatch。它易于理解,并且具有非常易于使用的界面。除了slack之外,它還支持 HipChat,Mattermost,F(xiàn)lock,webhook和 SMTP。
根據(jù)要監(jiān)視的 Kubernetes,可以在ConfigMap文件中為那些資源設(shè)置true或false。設(shè)置kubewatch配置并運(yùn)行Pod之后,您將開(kāi)始在Kubernetes事件上接收通知,如下所示。
Gitkube
Gitkube 是使用 git push 在 Kubernetes 上構(gòu)建和部署 Docker 鏡像的工具。它包含三個(gè)組件–Remote,gitkube-controller和gitkubed。Remote由gitkube-controller管理的自定義資源組成。gitkube-controller將更改發(fā)送到gitkubed,然后gitkubed構(gòu)建并部署docker鏡像。
Gitkube 功能:
易于安裝,即插即用
提供基于角色的訪問(wèn)控制以提高安全性
使用公鑰即可輕松進(jìn)行身份驗(yàn)證
支持多租戶的名稱空間
除了kubectl和git外沒(méi)有其他依賴項(xiàng)
kube-state-metrics
kube-state-metrics是一項(xiàng)通過(guò)偵聽(tīng)Kubernetes API服務(wù)器生成狀態(tài)對(duì)象指標(biāo)的服務(wù)。它用于檢查各種對(duì)象(例如節(jié)點(diǎn),吊艙,名稱空間和部署)的運(yùn)行狀況。它通過(guò)Kubernetes API為您提供未經(jīng)修改的原始數(shù)據(jù)。
以下是kube-state-metrics提供的信息:
CronJob和Job狀態(tài)
Pod的狀態(tài)(就緒,正在運(yùn)行等)
資源需求及其范圍
節(jié)點(diǎn)容量及其狀態(tài)
副本集的規(guī)格
Kamus
Kamus是一個(gè)開(kāi)源GitOps工具,用于對(duì)Kubernetes應(yīng)用程序的secret進(jìn)行加密和解密。Kamus所做的加密secret只能由Kubernetes集群上運(yùn)行的應(yīng)用程序解密。它使用AES,Google Cloud KMS,Azure KeyVault進(jìn)行secret加密。您可以使用Helm圖表開(kāi)始使用Kamus。
Kamus帶有兩個(gè)實(shí)用程序– Kamus CLI和Kamus init容器。Kamus CLI用于與加密API集成,而Kamus初始化容器用于與API解密集成。
Kubernetes普通secret未加密;它們是base64編碼的。您不能按原樣保留它。這是不安全的。任何有權(quán)訪問(wèn)該存儲(chǔ)庫(kù)的人都可以使用這些secret。因此,需要像Kamus這樣的適當(dāng)?shù)募用?解密解決方案。它還提供了一種威脅模型,可以處理威脅并確保secret安全。
Untrak
Untrak是Kubernetes中使用的一種開(kāi)源工具,用于查找未跟蹤的資源并對(duì)其進(jìn)行垃圾收集。它可以幫助您從集群中查找和刪除那些未跟蹤的文件。
在使用kubectl apply或helm模板將清單注入到CI/CD管道后,Kubernetes不知道何時(shí)從存儲(chǔ)庫(kù)中刪除對(duì)象。刪除對(duì)象后,將不會(huì)在交付過(guò)程中對(duì)其進(jìn)行跟蹤,而仍將其駐留在Kubernetes集群上。
它使用簡(jiǎn)單的配置文件 untrak.yaml在內(nèi)部執(zhí)行命令,以查找不再屬于源代碼管理一部分的資源。
Scope
Weave Scope用于可視化,監(jiān)視Docker和Kubernetes并對(duì)其進(jìn)行故障排除。
它顯示了容器化應(yīng)用程序的俯視圖以及完整的基礎(chǔ)結(jié)構(gòu),您可以使用它們輕松地發(fā)現(xiàn)任何問(wèn)題并進(jìn)行診斷。
在Docker容器中運(yùn)行微服務(wù)架構(gòu)應(yīng)用程序并不是那么容易。這里的組件非常動(dòng)態(tài),很難監(jiān)控。借助scope,您可以輕松地解決內(nèi)存泄漏問(wèn)題并控制CPU消耗,可視化網(wǎng)絡(luò)瓶頸。
Scope 功能:
幫助您實(shí)時(shí)監(jiān)控Docker容器
提供在容器中運(yùn)行的進(jìn)程之間的輕松導(dǎo)航
顯示主機(jī)或服務(wù)的CPU和內(nèi)存使用情況
使用CLI重新啟動(dòng),停止或暫停容器,而無(wú)需離開(kāi)范圍瀏覽器窗口
支持自定義插件以獲取有關(guān)容器,進(jìn)程和主機(jī)的更多詳細(xì)信息
Kubernetes Dashboard
Kubernetes 儀表板是 Kubernetes 提供的 Web 界面。它用于在 Kubernetes 集群上部署,故障排除和管理容器化的應(yīng)用程序。它提供了有關(guān)集群的所有信息,例如有關(guān)節(jié)點(diǎn),名稱空間,角色,工作負(fù)載等的詳細(xì)信息。
Kops
Kops是一個(gè)開(kāi)源項(xiàng)目,用于非常輕松,快速地建立可投入生產(chǎn)的Kubernetes集群。Kops主要可用于在AWS和GCE上部署Kubernetes集群。
小型 Kubernetes 集群很容易創(chuàng)建和維護(hù),但是在擴(kuò)展集群時(shí),會(huì)添加許多配置,并且很難進(jìn)行操作管理。Kops 是可幫助您解決此類(lèi)問(wèn)題的工具。它遵循配置驅(qū)動(dòng)的方法,該方法可以使集群始終保持最新和安全。
Kops 還具有許多網(wǎng)絡(luò)后端,根據(jù)使用情況選擇其中一個(gè),可以使您輕松設(shè)置各種類(lèi)型的集群。
cAdvisor
cAdvisor是用于監(jiān)視容器的開(kāi)源工具。它用于了解集群上運(yùn)行的容器的性能特征和資源使用情況。
它在節(jié)點(diǎn)級(jí)別上運(yùn)行,并且可以自動(dòng)發(fā)現(xiàn)在特定節(jié)點(diǎn)上運(yùn)行的所有容器,并收集內(nèi)存,文件系統(tǒng),CPU和網(wǎng)絡(luò)統(tǒng)計(jì)信息。它提供了一個(gè)Web界面,可顯示集群中所有容器的實(shí)時(shí)數(shù)據(jù)。
要開(kāi)始使用cAdvisor,您需要運(yùn)行其 docker image google/cadvisor,然后可以在Web瀏覽器中的http://localhost:8080上訪問(wèn)它。
Kubespray
Kubespray是一個(gè)免費(fèi)工具,它是通過(guò)組合Ansible 劇本和Kubernetes創(chuàng)建的。它用于Kubernetes集群生命周期管理。
通過(guò)使用Kubespray,您可以快速部署集群并自定義集群實(shí)施的所有參數(shù),例如部署模式,網(wǎng)絡(luò)插件,DNS配置,組件版本,證書(shū)生成方法等。
通過(guò)僅運(yùn)行一本簡(jiǎn)單的ansible-playbook,您的集群即可啟動(dòng)并運(yùn)行。您可以輕松擴(kuò)展或升級(jí)Kubernetes集群。
K9s
K9s是基于開(kāi)源終端的工具,其儀表板實(shí)用程序可以完成Kubernetes Web UI的所有工作。它用于導(dǎo)航,觀察和管理Kubernetes集群上部署的應(yīng)用程序。
k9s功能:
實(shí)時(shí)跟蹤您的集群
根據(jù)每個(gè)資源自定義顯示
放大以解決資源問(wèn)題
支持基于角色的訪問(wèn)控制
內(nèi)置基準(zhǔn)以驗(yàn)證資源性能
Kubetail
Kubetail是一種簡(jiǎn)單的bash腳本,用于在一個(gè)流中聚合來(lái)自多個(gè)pod的日志。
最新的Kubetail版本還具有突出顯示和過(guò)濾功能。此功能使您可以執(zhí)行日志著色。使用自制軟件,您可以使用單個(gè)命令安裝Kubetail。您可以在Kubetail可以讀取的環(huán)境變量中添加默認(rèn)值,例如 KUBETAIL_NAMESPACE, KUBETAIL_TAIL, KUBETAIL_SKIP_COLORS等。
PowerfulSeal
PowerfulSeal是一個(gè)用Python編寫(xiě)的,用于Kubernetes集群的開(kāi)源,功能強(qiáng)大的混沌工程工具。
混沌工程用于使系統(tǒng)有信心檢查其處理生產(chǎn)中問(wèn)題情況的能力。它給Kubernetes集群注入了故障,以便盡早發(fā)現(xiàn)其中的問(wèn)題。
它受到Netflix Chaos Monkey的啟發(fā),用于提高Kubernete的彈性。工程師使用PowerfulSeal故意破壞集群中的內(nèi)容,以檢查系統(tǒng)的反應(yīng)。
PowerfulSeal在三種模式下工作-自主,交互,標(biāo)簽。
在自主模式下,它通過(guò)讀取您提供的策略文件來(lái)執(zhí)行方案。在交互模式下,它會(huì)告訴您有關(guān)手動(dòng)嘗試破壞的集群組件的信息。在標(biāo)簽?zāi)J较?,您可以使用?biāo)簽殺死集群上的目標(biāo)對(duì)象,例如Pod。
Popeye
Popeye是一種清潔實(shí)用程序,可充當(dāng)Kubernetes集群的消毒器。
它將掃描整個(gè)集群,并報(bào)告與配置和資源有關(guān)的問(wèn)題。它可以幫助您在Kubernetes集群上執(zhí)行最佳實(shí)踐,以避開(kāi)常見(jiàn)問(wèn)題。
該實(shí)用程序可用于Windows,Linux和macOS。當(dāng)前,它僅適用于節(jié)點(diǎn),Pod,名稱空間,服務(wù)。使用Popeye,您可以輕松地識(shí)別已用和未使用的資源,端口不匹配,RBAC規(guī)則,指標(biāo)利用率等。
結(jié)論
DevOps 工具在成功中扮演著至關(guān)重要的角色,我希望以上內(nèi)容可以幫助您更好地管理Kubernetes。
責(zé)任編輯:彭菁
-
管理器
+關(guān)注
關(guān)注
0文章
246瀏覽量
18505 -
容器
+關(guān)注
關(guān)注
0文章
495瀏覽量
22061 -
kubernetes
+關(guān)注
關(guān)注
0文章
224瀏覽量
8716
原文標(biāo)題:16個(gè) Awesome 工具讓 Kubernetes 如虎添翼
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論