在短短的兩年時間裡,Kubernetes在容器編排的競爭中逐漸贏得了先機。像AWS這樣的頂級雲服務供應商也承諾通過對K8s的支持和整合來滿足客戶的需求。由於Kubernetes作為企業選擇容器解決方案的迅速普及,也產生了大量的工具,為用戶提供便利,是時候總結一份完整的工具清單了。本文將從集群部署工具、開發工具、CLI工具、無伺服器/功能工具、監控工具、安全、原生可視化和控制、原生服務發現、測試工具,這9個方面介紹50個有用的Kubernetes工具,大部分都是免費開源的!
一、集群部署工具
1.Kubespray
Kubespray為Kubernetes部署和配置提供了一系列Ansible作用。Kubespray可以使用AWS,GCE(谷歌雲引擎),Azure,OpenStack或裸金屬基礎設施即服務(IaaS)平臺。Kubespray是一個開放開發模式的開源項目。對於那些已經知道Ansible的人來說,該工具是一個不錯的選擇,因為不需要使用其他工具進行配置和編排。Kubespray在後臺使用kubeadm。
費用:免費
2.Minikube
Minikube允許你在本地安裝和試用Kubernetes。該工具是Kubernetes研究的一個很好的起點。在筆記本電腦上的虛擬機(VM)內輕鬆啟動單節點Kubernetes集群。Minikube可在Windows,Linux和OSX上使用。在短短的5分鐘內,將能夠探索Kubernetes的主要特色。只需一個命令即可啟動Minikube儀錶板。
費用:免費
3.Kubeadm
Kubeadm是自1.4版以來的Kubernetes分發工具。該工具有助於在現有基礎架構上引導最佳實踐Kubernetes集群。但Kubeadm無法為你配置基礎架構。它的主要優勢是能夠在任何地方啟動最小可行的Kubernetes集群。附加組件和網絡設置都不在Kubeadm的範圍之內,因此你需要手動或使用其他工具進行安裝。
費用:免費
4.Kops
Kops可以幫助你從命令行創建,銷毀,升級和維護生產級高可用性Kubernetes集群。AWS目前正式獲得支持,其中GCE處於測試版支持,Alpha版VMware vSphere以及其他平臺支持正在計劃中。 Kops允許你控制完整的Kubernetes集群生命周期;從基礎設施配置到集群刪除。
費用:免費
5.Bootkube
CoreOS提供了版本1.4發布的自託管Kubernetes集群的概念。自託管集群方法的核心是Bootkube。Bootkube可以幫助你建立一個臨時的Kubernetes控制平面,該控制平面將一直運行,直到自主控制平面能夠處理請求。
費用:免費
6.Kubernetes on AWS(Kube-AWS)
Kube-AWS是CoreOS提供的控制臺工具,它使用AWS CloudFormation部署全功能的Kubernetes集群。Kube-AWS允許你部署傳統的Kubernetes集群,並使用原生AWS功能(例如,ELB,S3和Auto Scaling等)自動配置每個K8s服務。
費用:免費
7.SimpleKube
SimpleKube是一個bash腳本,它允許你在Linux伺服器上部署單節點Kubernetes集群。雖然Minikube需要虛擬機管理程序(VirtualBox,KVM),但SimpleKube會將所有K8s二進位文件安裝到伺服器中。Simplekube在Debian 8/9和Ubuntu 16.x / 17.x上進行了測試。這是第一次嘗試Kubernetes的好工具。
費用:免費
8.Juju
Juju是來自Canonical的編排工具,可以讓你遠程操作雲提供商解決方案。Juju比Puppet/Ansible/Chef工作在更高的抽象層次上,並且管理服務而不是機器/虛擬機。Canonical非常努力地提供他們稱之為生產中合適的「Kubernetes-core bundle」。Juju作為一個專用工具提供,它擁有自己的控制臺/用戶界面,也可作為測試期間免費提供的服務(JaaS)。
費用:免費的社區版
商業版:每年200美元
9.Conjure-up
Conjure-up是另一個Canonical產品,它允許您通過一些簡單的命令部署「Ubuntu上Kubernetes的規範分發」。它支持AWS,GCE,Azure,Joyent,OpenStack,VMware,裸機和本地主機部署。 Juju,MAAS和LXD是Conjure-up的基礎技術。
費用:免費
二、監控工具
10.Kubebox
Kubebox是Kubernetes集群的終端控制臺,允許你通過漂亮的老式界面管理和監控集群的實時狀態。Kubebox顯示你的容器資源使用情況,集群監控和容器日誌等。此外,可以輕鬆導航到所需的名稱空間並執行到所需的容器中,以便快速排除故障/恢復。
費用:免費
11.Kubedash
Kubedash為Kubernetes提供了一個性能分析UI。Kubedash匯總來自不同來源的指標,並為管理員提供高級分析數據。Kubedash使用Heapster作為數據源,默認情況下,所有Kubernetes集群都會收集各個容器的度量和分析。
費用:免費
12.Kubernetes Operational View(Kube-ops-view)
Kube-ops-view是多個K8群集的只讀系統儀錶板。使用Kube-ops-view,您可以輕鬆地在群集和監視器節點之間進行導航以及您的群集的健康狀況。 Kube-ops-view使一些Kubernetes進程動畫化,例如創建和終止窗口。它還使用Heapster作為數據源。
費用:免費
13.Kubetail
Kubetail是一個小型的bash腳本,它允許您將來自多個窗格的日誌聚合到一個流中。最初的Kubetail版本沒有過濾或高亮功能,但Github上還有一個額外的Kubetail分叉。這可以使用多尾工具來形成和執行日誌著色。
費用:免費
14.Kubewatch
Kubewatch是一名Kubernetes觀察員,可以將K8s事件發布到團隊溝通應用Slack。Kubewatch作為Kubernetes集群內的一個容器運行,並監視系統中發生的變化。可以通過編輯配置文件來指定要接收的通知。
費用:免費
15.Weave Scope
Weave Scope是Docker和Kubernetes集群的故障排除和監控工具。它可以自動生成應用程式和基礎架構拓撲,可幫助輕鬆識別應用程式性能瓶頸。可以將Weave Scope作為獨立應用程式部署在本地伺服器/筆記本電腦上,也可以選擇Weave Cloud上的Weave Scope Software as a Service(SaaS)解決方案。藉助Weave Scope,可以使用名稱,標籤和/或資源消耗輕鬆地對容器進行分組,篩選或搜索。
費用:在獨立模式下免費
標準模式:每月30%(免費試用30天)
企業模式:每節點/月150美元
16.Searchlight
AppsCode提供的Searchlight是滿足Icinga的Kubernetes編排工具。Searchlight定期對Kubernetes集群進行各種檢查,並在出現問題時通過電子郵件,簡訊或聊天提醒你。Searchlight包括專門為Kubernetes編寫的默認檢查套件。此外,它還可以增強Prometheus的監控功能,並且可以通過外部黑匣子監控功能進行監控,並在內部系統完全失效的情況下作為回退功能。
費用:免費
17.Heapster
Heapster為Kubernetes啟用容器集群監控和性能分析。Heapster本身支持Kubernetes,並可以作為所有K8s設置中的一個容器運行。然後,Heapster的數據可以推送到可配置的後端以進行存儲和可視化。
費用:免費
三、測試工具
18.Kube-monkey
Kube-monkey是Netflix的Chaos Monkey的Kubernetes版本。Kube-monkey是遵循chaos engineering原理的工具。它可以隨意刪除K8s pods,檢查服務是否具備抗失效能力,並有助於你系統的健康狀況。Kube-monkey也由TOML文件配置,可以在其中指定要殺死哪個應用程式以及何時執行恢復策略。
費用:免費
19.K8s-testsuite
K8s-testsuite由2個Helm圖組成,可用於網絡帶寬測試和單個Kubernetes集群的負載測試。負載測試使用基於Vegeta的Kubernetes微服務運行的loadbots模擬簡單的Web伺服器。網絡測試在內部使用iperf3和netperf-2.7.0並運行三次。這兩組測試都會生成包含所有結果和指標的綜合日誌消息。
費用:免費
20.Test-infra
Test-infra是用於Kubernetes測試和結果驗證的工具集合。Test-infra包含幾個儀錶板,用於顯示歷史記錄,匯總故障並顯示當前正在測試的內容。你可以通過創建自己的測試作業來增強測試infra套件。Test-infra可以使用Kubetest工具在不同的提供商上執行完整的Kubernetes生命周期仿真的端到端Kubernetes測試。
費用:免費
21.Sonobuoy
Sonobuoy允許你通過以易於訪問和非破壞性的方式運行一組測試來了解您當前的Kubernetes集群狀態。Sonobuoy生成有關集群性能的詳細信息的信息報告。Sonobuoy支持Kubernetes版本1.8及以上版本。Sonobuoy Scanner是一款基於瀏覽器的工具,可讓你只需點擊幾下即可測試Kubernetes集群,但CLI版本具有更多可用的測試。
費用:免費
22.PowerfulSeal
PowerfulSeal是類似於Kube-monkey的工具,遵循chaos engineering原理。PowerfulSeal可以殺死pods,並從你的集群中刪除/添加虛擬機。與Kube-monkey相反,PowefulSeal具有交互模式,可讓你手動中斷特定集群組件。此外,PowefulSeal除SSH外不需要外部依賴。
費用:免費
23.Trireme
Trireme是Kubernetes網絡策略的靈活和直接的實施。Trireme適用於任何Kubernetes集群,並允許你管理來自不同集群之間的流量。Trireme的主要優勢在於不需要任何集中式策略管理,能夠輕鬆組織Kubernetes中部署的兩種資源的交互,以及沒有SDN,VLAN標籤和子網的複雜性(Trireme使用常規L3-網絡)。
費用:免費
24.Aquasec
Aquasec為Kubernetes部署提供完整的生命周期安全。Aqua Security在每個容器實例上部署一個專用代理,該實例充當防火牆並阻止容器中的安全漏洞。該代理與中央Aqua安全控制臺進行通信,該控制臺執行定義的安全限制。Aqua Security還有助於為雲和原生環境組織靈活的安全交付管道。Kube-Bench是一款由AquaSec發布的開源工具,它根據CIS Kubernetes Benchmark中概述的長列表測試Kubernetes環境。
費用:每次掃描0.29美元
25.Twistlock
Twistlock是另一種用作「雲預算呢行應用程式防火牆」的工具,可分析容器和服務之間的網絡流量。Twistlock能夠分析標準容器行為並根據此行為生成適當的規則,以便管理員不必手動生成策略規則。Twistlock還支持2.2版本的Kubernetes的CIS Benchmark。
費用:每個許可證每年1700美元(提供免費試用版)
26.Sysdig Falco
Sysdig Falco是一種行為活動監控,旨在檢測應用程式中的異常活動。Falco基於Sysdig Project,這是一個開源工具(現在是商業服務),通過跟蹤內核系統調用來監控容器性能。Falco可讓你通過一套規則持續監控和檢測容器,應用程式,主機和網絡活動。
費用:免費作為獨立工具
基本雲服務:每月20美元(免費試用)
Pro Cloud:每月30美元
Pro軟體:定製價格
27.Sysdig Secure
Sysdig Secure是Sysdig Container Intelligence Platform的一部分,具有很好的容器可視性和與容器編排工具的深度集成。這些包括Kubernetes,Docker,AWS ECS和Apache Mesos。藉助Sysdig Secure,你可以實施服務感知策略,阻止攻擊,分析歷史記錄並監控集群性能。Sysdig Secure可作為雲和內部部署軟體產品提供。
費用:作為獨立工具免費
Pro Cloud:定製價格
Pro軟體:定製價格
28.Kubesec.io
Kubesec.io是一項服務,它允許你為使用Kubernetes資源安全功能評分。Kubesec.io根據Kubernetes安全最佳實踐驗證資源配置。因此,你將對如何提高整體系統安全性有完全的控制權和其他建議。該網站還包含大量與容器和Kubernetes安全相關的外部連結。
費用:免費
五、CLI工具
29.Cabin
Cabin充當用於遠程管理Kubernetes集群的移動儀錶板。通過Cabin,用戶可以快速管理應用程式,擴展部署,並從Android或iOS設備對整個K8群集進行故障排除。Cabin是K8集群運營的強大工具,因為它允許你在發生事故時執行快速補救措施。
費用:免費
30.Kubectx/Kubens
Kubectx是一個小型的開源實用工具,它可以增強Kubectl的功能,並且可以輕鬆切換上下文,並同時連接到幾個Kubernetes集群。Kubens允許你在Kubernetes命名空間之間導航。這兩個工具在bash/zsh/fish shell上都有一個自動完成功能。
費用:免費
31.Kube-shell
使用kubectl時,Kube-shell可提高你的生產力。Kube-shell啟用命令自動完成和自動建議。此外,Kube-shell將提供有關執行命令的內嵌文檔。Kube-shell甚至可以在錯誤輸入時搜索和糾正命令。這是在K8s控制臺中提高性能和工作效率的絕佳工具。
費用:免費
32.Kail
Kail適用於Kubernetes集群。藉助Kail,你可以為所有匹配的Pod獲取Docker日誌。Kail允許你通過服務,部署,標籤和其他功能來過濾Pod。如果符合條件,Pod會在啟動後自動添加(或刪除)到日誌中。
費用:免費
六、開發工具
33.Telepresence
Telepresence提供了通過從你的Kubernetes環境到本地進程的代理數據在本地調試Kubernetes集群的可能性。Telepresence能夠為你的原生代碼提供對Kubernetes服務和AWS/GCP資源的訪問權限,因為它將部署到集群中。通過Telepresence,Kubernetes會將原生代碼作為集群中的正常集群進行計數。
費用:免費
34.Helm
Helm是Kubernetes的包管理工具。它就像APT/Yum/ Homebrew,當然是針對Kubernetes的。Helm使用Char來運行,它是構成分布式應用程式的Kubernetes資源清單的歸檔集。可以通過創建Helm圖表來共享你的應用程式。Helm允許創建可重複的構建並輕鬆管理Kubernetes清單。
費用:免費
35.Keel
Keel允許你自動執行Kubernetes部署更新,並可以在專用名稱空間中作為Kubernetes服務啟動。通過這樣的組織,Keel在你的環境中引入了最小的負載並增加了顯著的健壯性。Keel通過標籤,注釋和圖表幫助部署Kubernetes服務。你只需要為每個部署或Helm版本指定更新策略。一旦新的應用程式版本在存儲庫中可用,Keel將自動更新環境。
費用:免費
36.Apollo
Apollo是一個開源應用程式,為團隊提供自助UI,用於創建和部署Kubernetes的服務。Apollo允許操作員只需點擊一下即可查看日誌並將部署恢復到任何時間點。Apollo具有靈活的部署許可模式。每個用戶只能部署他需要部署的內容。
費用:免費
37.Draft
Draft是Azure團隊提供的一種工具,可將應用程式開發和部署簡化為任何Kubernetes集群。Draft在代碼部署和代碼提交之間創建了「內部循環」,大大加快了變更驗證過程。藉助Draft,開發人員可以使用兩條命令準備應用程式Docker files和Helm圖表,並將應用程式部署到遠程或本地Kubernetes集群。
費用:免費
38.Deis Workflow
Deis Workflow是一款開源工具。平臺即服務(PaaS)在Kubernetes集群上創建了額外的抽象層。這些層允許你在沒有來自開發人員的特定領域知識的情況下部署和/或更新Kubernetes應用程式。工作流程基於Kubernetes概念,提供簡單的,對開發人員友好的應用程式部署。作為一套Kubernetes微服務交付,運營商可以輕鬆安裝該平臺。工作流程可以在零宕機時間部署新版應用程式。
費用:免費
39.Kel
Kel是來自Eldarion,Inc.的開源PaaS,它有助於在整個生命周期中管理Kubernetes應用程式。Kel提供了兩個使用Python編寫的附加圖層,並在Kubernetes之上使用Go。級別0允許你配置Kubernetes資源,而級別1可幫助你在K8s上部署任何應用程式。
費用:免費
七、無伺服器/功能工具
40.Kubeless
Kubeless是一個Kubernetes本地無伺服器框架,可讓你部署小部分代碼,而無需擔心底層基礎設施。Kubeless能夠即時了解Kubernetes資源,並提供自動擴展,API路由,監控和故障排除。 Kubeless完全依賴於K8s的,因此Kubernetes用戶也將能夠使用原生K8s API服務和API網關。
費用:免費
41.Fission
Fission是一款針對Kubernetes的快速無伺服器框架,專注於開發人員的生產力和高性能。Fission在Kubernetes集群的任何位置都可以運行:在筆記本電腦上,任何公有雲或私有數據中心內運行。可以使用Python,NodeJS,Go,C#或PHP編寫函數,並使用Fission將其部署到K8s集群上。
費用:免費
42.Funktion
很長一段時間,Kubernetes:Funktion只有一個函數即服務(FaaS)實現。Funktion是為Kubernetes設計的開源事件驅動的lambda風格編程模型。Funktion與fabric8平臺緊密結合。使用Funktion,你可以創建流程以訂閱200多個事件源來調用你的功能,包括大多數資料庫,消息傳遞系統,社交媒體以及其他中間件和協議。
費用:免費
43.IronFunction
IronFunctions是一個開源的無伺服器平臺或FaaS平臺,你可以在任何地方運行。IronFunction寫在Golang上,真正支持任何語言的功能。IronFunction的主要優勢在於它支持AWS Lambda格式。直接從Lambda導入功能並在任何你想要的地方運行它們。
費用:免費
44.OpenWhisk
Apache OpenWhisk是由IBM和Adobe驅動的強大的開源FaaS平臺。OpenWhisk可以部署在本地內部設備或雲上。Apache OpenWhisk的設計意味著它充當一個異步和鬆散耦合的執行環境,可以運行針對外部觸發器的功能。OpenWhisk在Bluemix上作為SaaS解決方案提供,或者你可以在本地部署基於Vagrant的虛擬機。
費用:免費
45.OpenFaaS
OpenFaaS框架旨在管理Docker Swarm或Kubernetes上的無伺服器功能,以便收集和分析各種指標。你可以打包你的函數中的任何進程,並使用它,而無需重複編碼或任何其他例行操作。FaaS擁有Prometheus指標,這意味著它可以根據需求自動調整功能。FaaS原生支持基於Web的界面,你可以在其中嘗試功能。
費用:免費
46.Nuclio
Nuclio是一個無伺服器項目,旨在處理高性能事件和大量數據。Nuclio可以作為獨立庫或VM/Docker容器在內部設備上啟動。另外,Nuclio支持Kubernetes。Nuclio以最大的並行性和最小的開銷提供實時數據處理。
費用:免費
47.Virtual-Kubelet
Virtual-Kubelet是一個開源的Kubernetes Kubelet實現,它模擬成一個kubelet,用於將Kubernetes連接到其他API。Virtual-Kubelet允許節點由ACI,Hyper.sh和AWS等其他服務提供支持。該連接器具有可插拔架構和直接使用Kubernetes基元,使其更易於構建。
費用:免費
48.Fnproject
Fnproject是一個容器原生無伺服器項目,幾乎支持任何語言,幾乎可以在任何地方運行。Fn是在Go上編寫的,因此它具有性能且輕便的特點。Fnproject支持AWS Lambda格式樣式,因此你可以輕鬆導入Lambda函數並使用Fnproject啟動它。
費用:免費
49.CoreDNS
CoreDNS是一組使用Go編寫的用於執行DNS功能的插件。帶有附加Kubernetes插件的CoreDNS可以替換默認的Kube-DNS服務,並實現為Kubernetes基於DNS的服務發現定義的規範。CoreDNS還可以偵聽通過UDP/TCP,TLS和gRPC進入的DNS請求。
費用:免費
九、原生可視化和控制
50.Kubernetes Dashboard
Kubernetes Dashboard是Kubernetes集群的通用基於Web的UI。使用本機儀錶板對K8s集群進行故障排除和監控要容易得多。你需要在機器和Kubernetes API伺服器之間創建一個安全代理通道來訪問儀錶板。本地Kubernetes儀錶板依賴於Heapster數據收集器,因此它也需要安裝在系統中。
費用:免費
第三十屆CIO班招生 法國布雷斯特商學院碩士班招生 北達軟EXIN網絡空間與IT安全基礎認證培訓 北達軟EXIN DevOps Professional認證培訓責編:pingxiaoli