優秀Kubernetes工具的完整指南
譯文譯者 | 李睿
審校 | 重樓
在容器化應用程序編排方面,Kubernetes是市場的領導者。它允許用戶在多主機環境中管理容器,提供工作負載分配和網絡處理。
此外,它還提供了許多在DevOps過程中至關重要的特性,例如自動擴展、自動修復和負載平衡。這些功能解釋了Kubernetes是大多數軟件工程師首選解決方案的原因。
然而,人們也普遍認為管理Kubernetes是一項艱巨的任務。值得慶幸的是,有一些Kubernetes工具可以幫助用戶實現流程的自動化,以確保其部署和工作流得到優化。本文探討了各種Kubernetes監控工具,包括專有的和開源的工具,它們可以幫助用戶最大限度地利用軟件開發項目。
優秀的Kubernetes工具
(1)Kubernetes成本管理工具
- KubeCost
價格:免費(開源)
KubeCost是一個Kubernetes成本監控和管理工具,它可以根據名稱空間標簽、服務、部署等提供成本消耗的實時報告。
KubeCost還允許用戶考慮云計算服務器上的外部支出,以獲得整體視圖,并為成本超支添加警報和通知。此外,還可以獲得提高性價比的智能見解。
- Kubernetes Opex Analytics
價格:免費(開源)
Kubernetes Opex Analytics是Kubernetes成本監控工具,在其GitHub存儲庫中擁有400多顆星。使用這個工具,可以跟蹤Kubernetes使用的資源,并以每個名稱空間為基礎獲得每小時、每天和每月的趨勢。
Kubernetes Opex Analytics還突出顯示了應用程序工作負載無法利用的容量。在展示分析時,它還提供了優雅的可視化,此外,它還將其分析指標提供給第三方可視化工具。
- Pluto
價格:免費(開源)
毫無疑問,Kubernetes在很短的時間內推出了新的更新并棄用了一些組件。然而,查找和更新所有棄用的API版本是一件麻煩事。
Pluto是Kubernetes的一個監控工具,它可以自動在用戶的基礎設施即代碼(IaC)倉庫和Live Helm版本中找到受影響的版本,然后將它們標記為“已棄用”或“已刪除”,以幫助用戶處理已貶值的API。
(2)Kubernetes部署工具
- Loft
價格:免費和付費級別
Loft是一個部署工具,它使用戶能夠為Kubernetes設置自助服務虛擬環境。這種方法允許集群的快速初始化,并提供更好的控制。使用Loft,可以管理跨Kubernetes環境的多個租戶的訪問控制、安全性和隔離。
此外,它還可以幫助用戶監視未使用的資源,并自動將所有此類名稱空間置于休眠狀態,這可以幫助服務節省高達70%的云計算成本。
- Minikube
價格:免費(開源)
Minikube允許用戶創建一個本地Kubernetes集群,其方法是在其服務器上創建一個虛擬機(或者可以使用Docker),并在幾分鐘內部署一個單節點集群。
從本質上來說,Minikube是測試和探索Kubernetes的一個很好的工具,因為它有幾個特性,例如負載平衡器、儀表板和Nvidia GPU支持。
- Kubespray
價格:免費(開源)
Kubesray是一個管理工具,它允許用戶在AWS、GCE、Azure和裸機服務器上部署Kubernetes集群。它由Ansible劇本、庫存和供應工具組成,用于處理Kubernetes集群配置。
例如,Ansible允許跨多個平臺運行高可用性集群。
- Okteto
價格:免費(開源)
Okteto是一個Kubernetes部署工具,它為用戶提供了預配置的開發環境。這樣,如果在這些內部部署環境中進行任何更改,它們會自動反映在云服務器上。
這種功能的好處是它加速了Kubernetes開發工作流,因為不必等待CI管道完成。
- Flagger
價格:免費(開源)
Flagger是一個部署工具,可以促進Kubernetes應用程序的逐步發布。首先,可以將應用程序的更新版本發布給受控和有限的用戶群,以進行測試。如果初始部署成功,則可以完成對其余用戶的發布。
這樣做的好處是,如果出現錯誤,可以安全地將應用程序回滾到穩定版本。需要強調的是,Flagger使用了Contour、NGINX、App Mesh、Linkerd和Istion來實現這個金絲雀部署模式。
- ArgoCD
價格:免費(開源)
ArgoCD是一個為Kubernetes提供聲明式持續交付的工具,它允許自動化Kubernetes部署和生命周期管理。其結果是兩者都是可審計的,并且易于理解。
- Flux
價格:免費(開源)
Flux由Weaveworks開發,并于2016年開源,它可以幫助用戶在Git中保存應用程序的整個狀態。可以使用它來部署帶有金絲雀和特性標志的應用程序,也可以使用Git執行A/B測試和漸進交付。
Flux還增強了應用程序的可聽性,因為一切都是通過pull請求控制的。
(3)Kubernetes監控工具
- Headlamp
價格:免費(開源)
Headlamp是一個開源工具,它提供了一個用戶友好的Web UI來監控Kubernetes集群。用戶不僅可以獲得傳統儀表板的所有功能,還可以通過插件擴展UI。
動態UI根據權限(例如刪除或編輯)調整和顯示控件。實際上,用戶可以在集群中部署Headlamp,并通過Web瀏覽器或作為從Kubecconfig文件讀取設置的桌面應用程序訪問它。
- K9s
價格:免費(開源)
K9s是另一個開源工具,它有一個易于使用的終端UI,用于監視Kubernetes pod。UI顯示實時信息,可以通過某些命令與之交互。
k9除了允許運行集群管理命令外,還顯示所有集群指標和RBAC角色。它甚至帶有不同的皮膚來改變UI的外觀和感覺。
- Lens
價格:免費和付費級別
Lens是一個桌面應用程序,可用于Windows、Linux和macOS,它為Kubernetes提供了一個開源集成開發環境(IDE)。
它允許在Kubernetes集群之間輕松導航,而無需使用任何kubectl命令,并提供實時統計數據和日志。該界面顯示錯誤和警告,可以展開這些錯誤和警告以查看詳細信息。
- Falco
價格:免費(開源)
Falco是一個活動監控工具,用于檢測Kubernetes中的異常使用模式。該項目最初由Sysdig啟動,現在是CNCF孵化的項目。使用Falco,可以檢測涉及Linux系統調用的異常活動并獲得即時警報。
此外,它能夠為容器、主機和網絡定義規則,然后通知是否有任何系統調用違反了這些規則。
- Kube-bench
價格:免費(開源)
Kube-bench是一個開源監控工具,它通過運行CIS Kubernetes Benchmark中記錄的檢查來檢查Kubernetes部署是否安全。測試是在一個YAML文件中定義的,這使得它們很容易根據規范進行升級。
- Kube-hunter
價格:免費(開源)
Aquasecurity的Kube-hunter旨在探測Kubernetes集群中的安全漏洞。它增加了安全威脅的可見性,并允許在造成任何損害之前解決問題。
- 開放策略代理(OPA)
價格:免費(開源)
開放策略代理(OPA)是一個開源的政策制定引擎,它統一了跨多個云原生環境(包括Kubernetes)的策略執行。
它提供了一種高級語言,允許將自定義策略聲明為代碼并將其集成到服務中。這提供了安全管理的靈活性和對云服務的更好控制。
(4)命令行實用工具
- Kubectx / Kubens
價格:免費(開源)
Kubectx和Kubens是在GitHub上的同一個存儲庫下找到的命令行工具。Kubectx允許在Kubectl上的場景(集群)之間快速切換。另一方面,Kubens允許使用一些命令在Kubernetes名稱空間之間切換。
需要強調的一個關鍵點是,從0.9.0版本開始,這兩個工具都在Go中進行了重寫,盡管Bash實現仍然存在。
結論
Kubernetes是一個強大的編排工具,不用說,它已經徹底改變了現代云計算。隨著Kubernetes被越來越多地采用,對管理和監控Kubernetes集群的高級有效工具的需求也在不斷增長。
這一指南重點介紹了與市場上領先的Kubernetes工具相關的一些關鍵特性,這些工具迎合了各種用例,主要是成本管理、部署和監控。
最適合軟件項目的Kubernetes工具的最終決定取決于用戶的特定需求和項目目標。
原文標題:Best Kubernetes Tools:The Complete Guide,作者:Florian Pialoux