50+ 頂級開源 Kubernetes 工具列表
近日,Kubernetes 1.13 正式發布,這是 2018 年發布的第四次也是最后一次大版本,該版本繼續關注 Kubernetes 穩定性和可擴展性,對存儲和集群生命周期的主要功能實現高可用。Kubeadm 簡化了集群管理、容器存儲接口(CSI)并將 CoreDNS 作為默認 DNS。
最近兩年,Kubernetes 給容器戰場帶來了巨大沖擊,Docker Swarm 也未能成為其對手,類似 AWS 的主流云供應商紛紛提供 K8s 支持。本文總結了 50 多種 Kubernetes 集群部署、監控、安全及測試等相關工具,大部分為開源項目,非常適合技術人員入門。
原生可視化與控制
1、Kubernetes Dashboard
Kubernetes Dashboard 是 Kubernetes 集群基于 Web 的通用 UI,使用本地儀表板對 K8s 集群進行故障排除和監控要容易得多,但需要在計算機和 Kubernetes API 服務器之間創建安全代理通道才能訪問。原生 Kubernetes Dashboard 依賴 Heapster 數據收集器,因此也需安裝在系統中。
鏈接:
https://github.com/kubernetes/dashboard#kubernetes-dashboard
成本: 免費
測試
2、Kube-monkey
Kube-monkey 遵循混沌工程原理,可隨機刪除 K8s pod 并檢查服務是否具有故障恢復能力,并提高系統健康性。Kube-monkey 由 TOML 文件配置,可在其中指定要殺死的應用程序及恢復時間。
鏈接: https://github.com/asobti/kube-monkey
成本: 免費
3、K8s-testsuite
K8s-testsuite 由兩個 Helm 圖組成,可用于網絡帶寬測試和單個 Kubernetes 集群負載測試。負載測試模擬帶有 loadbots 的簡單 Web 服務器,這些服務器作為基于 Vegeta 的 Kubernetes 微服務運行。網絡測試在內部使用 iperf3 和 netperf-2.7.0 并運行三次,兩組測試均會生成包含所有結果和指標的綜合日志消息。
鏈接: https://github.com/mrahbar/k8s-testsuite
成本: 免費
4、Test-infra
Test-infra 是 Kubernetes 測試和結果驗證的工具集合,可顯示歷史記錄、聚合故障及當前正在測試的內容。用戶可通過創建測試作業增強 test-infra 套件。Test-infra 可使用 Kubetest 工具對不同提供商的完整 Kubernetes 生命周期模擬并進行端到端測試。
鏈接: https://github.com/kubernetes/test-infra
成本: 免費
5、Sonobuoy
Sonobuoy 允許以可訪問和非破壞方式運行一組測試了解當前 Kubernetes 集群狀態。Sonobuoy 生成信息報告,其中包含有關集群性能的詳細信息。Sonobuoy 支持 Kubernetes 1.8 及更高版本,Sonobuoy Scanner 是一個基于瀏覽器的工具,允許通過幾次單擊測試 Kubernetes 集群,但 CLI 版本有更多測試可用。
鏈接: https://github.com/heptio/sonobuoy
成本: 免費
6、PowerfulSeal
PowerfulSeal 是一種類似 Kube-monkey 的工具,遵循混沌工程原理。PowerfulSeal 可殺死 pod 并從集群中刪除或者添加 VM。與 Kube-monkey 相比,PowefulSeal 具有交互模式,允許手動中斷特定集群組件。此外,PowefulSeal 除了 SSH 之外不需要外部依賴。
鏈接: https://github.com/bloomberg/powerfulseal
成本: 免費
集群部署工具
7、Kubespray
Kubespray 為 Kubernetes 部署和配置提供一組 Ansible 角色。Kubespray 可使用 AWS,GCE,Azure,OpenStack 或裸機基礎架構即服務(IaaS)平臺。 Kubespray 是一個開源項目,具有開放的開發模型。對于已經了解 Ansible 的人來說,該工具是一個不錯的選擇,因為不需要使用其他工具進行配置和編排。
鏈接: https://github.com/kubernetes-incubator/kubespray
成本: 免費
8、Minikube
Minikube 允許在本地安裝和試用 Kubernetes,該工具是使用 Kubernetes 的良好起點,可在筆記本電腦的虛擬機(VM)中輕松啟動單節點 Kubernetes 集群。Minikube 適用于 Windows、Linux 和 OSX。在短短 5 分鐘內,用戶就可以探索 Kubernetes 的特點,只需一個命令即可啟動 Minikube 儀表板。
鏈接: https://github.com/kubernetes/minikube
成本: 免費
9、Kubeadm
Kubeadm 是自 1.4 版以來的 Kubernetes 分發工具,該工具有助于在現有基礎架構上引導最佳 Kubernetes 集群實踐,但 Kubeadm 無法配置基礎架構,其主要優點是能夠在任何地方發布最小的可行 Kubernetes 集群。但是,附加組件和網絡設置都不屬于 Kubeadm 范圍,因此需要手動或使用其他工具進行安裝。
鏈接: https://github.com/kubernetes/kubeadm
成本: 免費
10、Kops
Kops 可幫助用戶從命令行創建、銷毀、升級和維護生產級高可用 Kubernetes 集群。AWS 目前正式支持,GCE 處于測試支持狀態,而 alpha vSphere 中的 VMware vSphere 以及其他平臺均予以支持。Kops 可控制完整 Kubernetes 集群生命周期,從基礎架構配置到集群刪除。
鏈接: https://github.com/kubernetes/kops
成本: 免費
11、Bootkube
CoreOS 提供自托管 Kubernetes 集群概念,自托管集群方法的中心是 Bootkube。Bootkube 可設置臨時 Kubernetes 控制平面,該平面將一直運行,直到自托管控制平面能夠處理請求。
鏈接: https://github.com/kubernetes-incubator/bootkube
成本: 免費
12、Kubernetes on AWS (Kube-AWS)
Kube-AWS 是 CoreOS 提供的控制臺工具,使用 AWS CloudFormation 部署功能齊全的 Kubernetes 集群。Kube-AWS 允許部署傳統 Kubernetes 集群,并使用本機 AWS 功能(比如 ELB、S3 和 Auto Scaling 等)自動配置每個 K8s 服務。
鏈接: https://github.com/kubernetes-incubator/kube-aws ]"> https://github.com/kubernetes-incubator/kube-aws ]
成本: 免費
13、SimpleKube
SimpleKube 是一個 bash 腳本,可在 Linux 服務器上部署單節點 Kubernetes 集群。雖然 Minikube 需要虛擬機管理程序(VirtualBox,KVM),但 SimpleKube 會將所有 K8s 二進制文件安裝到服務器。Simplekube 在 Debian 8/9 和 Ubuntu 16.x / 17.x 上進行測試,這同樣是入門 Kubernetes 的好工具。
鏈接: https://github.com/valentin2105/Simplekube
成本: 免費
14、Juju
Juju 是 Canonical 提供的服務編排工具,可讓用戶遠程操作云提供商解決方案。Juju 的工作抽象級別高于 Puppet、Ansible 和 Chef,并且管理服務而不是虛擬機。Canonical 努力在生產中提供稱之為合適的“Kubernetes-core bundle”。Juju 可作為專用工具使用,具有控制臺 UI 界面,也可作為 JaaS 服務。
成本: 社區版免費,商業版每年 200 美元起
15、Conjure-up
Conjure-up 同樣是 Canonical 的產品,允許使用簡單命令部署 Kubernetes 在 Ubuntu 上的規范分布,支持 AWS、GCE、Azure、Joyent、OpenStack、VMware 和 localhost 部署。Juju、MAAS 和 LXD 是 Conjure-up 的基礎。
成本: 免費
監測工具
16、Kubebox
Kubebox 是 Kubernetes 集群的終端控制臺,允許使用界面管理和監控集群實時狀態。Kubebox 可顯示 pod 資源使用情況,集群監視和容器日志等。此外,用戶可輕松導航到所需的命名空間并執行到所需容器,以便快速排障或恢復。
鏈接: https://github.com/astefanutti/kubebox
成本: 免費
17、Kubedash
Kubedash 為 Kubernetes 提供性能分析 UI,匯總不同來源的指標,并為管理員提供高級分析數據。Kubedash 使用 Heapster 作為數據源,默認情況下在所有 Kubernetes 集群中作為服務運行,為各個容器收集指標并分析。
鏈接: https://github.com/kubernetes-retired/kubedash
成本: 免費
18、Kubernetes Operational View (Kube-ops-view)
Kube-ops-view 是一個用于多 K8s 集群的只讀系統儀表板。使用 Kube-ops-view,用戶可輕松在集群和監控節點之間導航,并監控 pod 健康狀況。Kube-ops-view 可以動畫 Kubernetes 進程,例如 pod 創建和終止,使用 Heapster 作為數據源。
鏈接: https://github.com/hjacobs/kube-ops-view
成本: 免費
19、Kubetail
Kubetail 是一個小型 bash 腳本,允許將多個 pod 日志聚合到一個流中。最初的 Kubetail 沒有過濾或突出顯示功能,但 Github 上的額外 Kubetail 版本可使用多尾工具形成并執行日志著色。
鏈接:
https://github.com/johanhaleby/kubetail https://github.com/aks/kubetail
成本: 免費
20、Kubewatch
Kubewatch 可將 K8s 活動發布到 Slack 應用。Kubewatch 作為 Kubernetes 集群內的 pod 運行,并監視系統中發生的變化,可通過編輯配置文件來指定要接收的通知。
鏈接: https://github.com/bitnami-labs/kubewatch
成本: 免費
21、Weave Scope
Weave Scope 是 Docker 和 Kubernetes 集群的故障排除和監視工具,可以自動生成應用程序和基礎架構拓撲,輕松識別應用程序性能瓶頸,可以將 Weave Scope 部署為本地服務器或筆記本電腦上的獨立應用程序,也可以選擇 Weave Cloud 上的 Weave Scope 軟件即服務(SaaS)解決方案。使用 Weave Scope,用戶可根據名稱、標簽或資源消耗輕松對容器分組、過濾或搜索。
鏈接: https://www.weave.works/oss/scope/
成本: 標準模式提供 30 天免費體驗,企業版每節點每月 150 美元
22、Searchlight
AppsCode 提供的 Searchlight 是滿足 Icinga 的 Kubernetes 編排工具。Searchlight 會定期對 Kubernetes 集群執行檢查,并在出現問題時通過電子郵件、短信或其他方式提醒。Searchlight 包含專門為 Kubernetes 編寫的默認檢查套件。此外,可通過外部黑匣子增強 Prometheus 監控,并在內部系統完全失效的情況下作為備份。
鏈接: https://github.com/appscode/searchlight
成本: 免費
23、Heapster
Heapster 為 Kubernetes 提供容器集群監控和性能分析。Heapster 本身支持 Kubernetes,可在所有 K8s 設置上作為 pod 運行,可將 Heapster 數據推送到可配置的后端進行存儲和可視化。
鏈接: https://github.com/kubernetes/heapster
成本: 免費
安全
24、Trireme
Trireme 適用于所有 Kubernetes 集群,允許管理來自不同集群的 pod 間流量,主要優點是不需要任何集中策略管理,能夠輕松組織部署在 Kubernetes 中的資源交互,并且沒有 SDN、VLAN 標簽和子網的復雜性(Trireme 使用傳統 L3- 網絡)。
鏈接: https://github.com/aporeto-inc/trireme-kubernetes
成本: 免費
25、Aquasec
Aquasec 為 Kubernetes 部署提供完整的生命周期安全性。Aqua Security 在每個容器實例上部署專用代理,該實例用作防火墻并阻止容器中的安全漏洞,此代理與中央 Aqua Security 控制臺進行通信,該控制臺強制執行已定義的安全限制。Aqua Security 還有助于為云和內部部署環境組織靈活的安全交付管道。Kube-Bench 是 AquaSec 發布的開源工具,根據 CIS Kubernetes Benchmark 中的測試列表檢查 Kubernetes 環境。
成本: 每次掃描 0.29 美元
26、Twistlock
Twistlock 可用作云原生應用程序防火墻,并分析容器和服務之間的網絡流量。Twistlock 能夠分析標準容器行為并據此生成適當規則,管理員不必手動生成。Twistlock 還支持 2.2 版本的 Kubernetes CIS 基準測試。
鏈接: https://www.twistlock.com/
成本: 每年每個許可 1700 美元起 (可免費試用)
27、Sysdig Falco
Sysdig Falco 是一種行為活動監視器,旨在檢測應用程序異常。Falco 基于 Sysdig 項目,這是一個開源工具(現在是商業項目),通過跟蹤內核系統調用來監控容器性能。Falco 允許使用一組規則持續監視和檢測容器、應用程序、主機和網絡活動。
鏈接: https://sysdig.com/opensource/falco/
成本: 獨立工具可免費使用
基于云: 每月 20 美元 per month (免費試用)
Pro Cloud: 每月 30 美元
Pro Software: 定制價格
28、Sysdig Secure
Sysdig Secure 是 Sysdig Container Intelligence Platform 的一部分,具有無與倫比的容器可見性并與容器編排工具深度集成,開箱即用,包括 Kubernetes、Docker、AWS ECS 和 Apache Mesos。Sysdig Secure 可實施服務感知策略,阻止攻擊并分析歷史記錄及監控集群性能。
鏈接: https://sysdig.com/product/secure/
成本: 工具免費
Pro Cloud: 定制價格
Pro Software: 定制價格
29、 Kubesec.io
Kubesec.io 可為 Kubernetes 資源評分并提供安全功能,Kubesec.io 根據安全性最佳實踐驗證資源配置。因此,用戶將獲得有關提高整體系統安全性的全面控制和建議。該網站包含大量與容器和 Kubernetes 安全相關的鏈接。
成本: 免費
CLI 工具
30、Cabin
Cabin 用作移動儀表板,可遠程管理 Kubernetes 集群。 借助 Cabin,用戶可快速管理應用程序,擴展部署并通過 Android 或 iOS 設備對整個 K8s 集群進行故障排除。Cabin 是 K8s 集群運營商的理想工具,因為允許在發生事故時執行快速補救措施。
鏈接: https://github.com/bitnami-labs/cabin
成本: 免費
31、Kubectx/Kubens
Kubectx 是一個小型開源實用工具,可以增強 Kubectl 功能,輕松切換上下文并同時連接到幾個 Kubernetes 集群。Kubens 允許在 Kubernetes 命名空間之間導航,這兩個工具在 bash/zsh/fish shell 上都有自動完成功能。
鏈接: https://github.com/ahmetb/kubectx
成本: 免費
32、 Kube-shell
使用 kubectl 時,Kube-shell 可提高工作效率,其可通過命令自動完成部分工作。此外,Kube-shell 將提供有關已執行命令的在線文檔。Kube-shell 甚至可以在錯誤輸入時搜索和更正命令,是提高 K8s 控制臺性能和工作效率的絕佳工具。
鏈接: https://github.com/cloudnativelabs/kube-shell
成本: 免費
33、Kail
Kail 是 Kubernetes tail 的縮寫,適用于 Kubernetes 集群。Kail 可為所有匹配 pod 添加 Docker 日志。Kail 允許按服務、部署、標簽和其他功能過濾 pod。如果 Pod 符合條件,則會在啟動后自動添加(或刪除)到日志中。
鏈接: https://github.com/boz/kail
成本: 免費
部署工具
34、Telepresence
Telepresence 通過 Kubernetes 環境的代理數據本地調試集群到本地進程的可能性。Telepresence 能夠為本地代碼提供對 Kubernetes 服務和 AWS/GCP 資源的訪問,因為它將部署到集群。通過 Telepresence,Kubernetes 可將本地代碼視為集群中的普通 pod。
鏈接: https://www.telepresence.io/
成本: 免費
35、Helm
Helm 可與 Char 一起運行,Char 是構成分布式應用程序的 Kubernetes 資源歸檔集,可通過創建 Helm 圖表共享應用程序,Helm 允許構建并輕松管理 Kubernetes 配置。
鏈接: https://github.com/kubernetes/helm
成本: 免費
36、Keel
Keel 允許自動執行 Kubernetes 部署更新,并可在專用命名空間中作為 Kubernetes 服務啟動。通過這種方式,Keel 為環境帶來了最小負載,并顯著增加穩健性。Keel 通過標簽、注釋和圖表幫助部署 Kubernetes 服務,只需為每個部署或 Helm 版本指定更新策略。一旦新的應用程序版本在存儲庫中可用,Keel 將自動更新環境。
鏈接: https://keel.sh/
成本: 免費
37、Apollo
Apollo 是一個開源應用程序,為團隊提供自助 UI,用于創建和部署 Kubernetes 服務。Apollo 允許管理員單擊一下即可查看日志并將部署恢復到任何時間點。Apollo 具有靈活的部署權限模型,每個用戶只能部署需要的內容。
鏈接: https://github.com/logzio/apollo
成本: 免費
38、Draft
Draft 是 Azure 團隊提供的工具,可簡化應用程序開發和部署到任何 Kubernetes 集群。Draft 在代碼部署和提交之間創建內部循環,顯著加快了變更驗證過程。使用 Draft,開發人員可以準備應用程序 Dockerfiles 和 Helm 圖表,并使用兩個命令將應用程序部署到遠程或本地 Kubernetes 集群。
鏈接: https://github.com/azure/draft
成本: 免費
39、Deis Workflow
Deis Workflow 可在 Kubernetes 集群上創建額外的抽象層,這些層允許開發人員在沒有特定領域認知的情況下部署或更新 Kubernetes 應用程序。Workflow 基于 Kubernetes 概念構建,提供簡單且易于使用的應用程序部署方式。作為一組 Kubernetes 微服務提供,運營商可輕松安裝該平臺,Workflow 也可在不停機的情況下部署新版本應用。
鏈接: https://deis.com/workflow/
成本: 免費
40、Kel
Kel 有助于管理 Kubernetes 應用的整個生命周期。Kel 在 Kubernetes 上提供兩個用 Python 和 Go 編寫的附加層。級別 0 允許配置 Kubernetes 資源,級別 1 可幫助在 K8s 上部署應用程序。
鏈接: http://www.kelproject.com/
成本: 免費
CI/CD
41、Cloud 66
Cloud 66 是一個完整的 DevOps 工具鏈,用于生產中容器化應用程序,通過專門的 Ops 工具自動化 DevOps 大部分繁重工作。該平臺目前在 Kubernetes 上運行 4,000 個客戶工作負載,并管理 2,500 行配置。通過提供端到端的基礎架構管理,Cloud 66 使工程師能夠在任何云或服務器上構建、交付、部署和管理應用程序。
鏈接: www.cloud66.com
成本: 14 天免費使用
無服務器相關工具
42、 Kubeless
Kubeless 是一個 Kubernetes 本機無服務器框架,允許部署少量代碼,而無需擔心底層基礎架構。Kubeless 提供自動擴展、API 路由、監控和故障排除等功能。Kubeless 完全依賴 K8s 原語,因此 Kubernetes 用戶也可使用原生 K8s API 服務器和 API 網關。
鏈接: https://github.com/kubeless/kubeless
成本: 免費
43、Fission
Fission 是 Kubernetes 的快速無服務器框架,可任何地方的 Kubernetes 集群上運行:筆記本電腦、公有云或私有數據中心。用戶可使用 Python、NodeJS、Go、C#或 PHP 編寫函數,并使用 Fission 將其部署到 K8s 集群。
成本: 免費
44、Funktion
很長一段時間,Kubernetes 只有一個功能即服務實現就是 Funktion。Funktion 是一個為 Kubernetes 設計的開源事件驅動 lambda 式編程模型。Funktion 與 fabric8 平臺緊密結合。使用 Funktion,用戶可創建從 200 多個事件源訂閱的流來調用功能,包括大多數數據庫、消息傳遞系統、社交媒體及其他中間件和協議。
鏈接: https://github.com/funktionio/funktion
成本: 免費
45、IronFunction
IronFunctions 是一個開源無服務器平臺或 FaaS 平臺,可以在任何地方運行。IronFunction 是在 Golang 上編寫的,并且支持任何語言函數。IronFunction 的主要優點是支持 AWS Lambda 格式,直接從 Lambda 導入函數并在任何地方運行。
鏈接: https://github.com/iron-io/functions
成本: 免費
46、OpenWhisk
Apache OpenWhisk 是一個由 IBM 和 Adobe 驅動的強大開源 -FaaS 平臺。OpenWhisk 可在本地內部部署或云上。Apache OpenWhisk 的設計意味著其充當異步且松散耦合的執行環境,可以針對外部觸發器運行功能。OpenWhisk 在 Bluemix 上作為 SaaS 解決方案提供,或者在本地部署基于 Vagrant 的 VM。
鏈接: https://console.bluemix.net/openwhisk/
成本: 免費
47、OpenFaaS
OpenFaaS 框架旨在管理 Docker Swarm 或 Kubernetes 上的無服務器功能,可收集和分析各種指標。用戶可在函數內打包任何進程并使用,無需重復編碼或其他任何操作。FaaS 具有 Prometheus 指標,這意味著可以根據需求自動調整功能。FaaS 本身支持基于 Web 的界面,可在其中試用功能。
鏈接: https://github.com/openfaas/faas
成本: 免費
48、Nuclio
Nuclio 是一個無服務器項目,可作為獨立庫在內部部署設備上啟動,也可在 VM 或 Docker 容器內啟動。此外,Nuclio 支持開箱即用的 Kubernetes。Nuclio 提供實時數據處理,具有最大并行性和最小開銷,可在頁面上試用 Nuclio。
鏈接: https://github.com/nuclio/nuclio
成本: 免費
49、Virtual-Kubelet
Virtual Kubelet 是一個開源 Kubernetes Kubelet 實現,偽裝成一個 kubelet,用于將 Kubernetes 連接到其他 API。Virtual Kubelet 允許節點由其他服務(如 ACI、Hyper.sh 和 AWS 等)提供支持。此連接器具有可插入的體系結構,可直接使用 Kubernetes 原語,使其更容易構建。
鏈接: https://github.com/virtual-kubelet/virtual-kubelet
成本: 免費
50、Fnproject
Fnproject 是一個容器本機無服務器項目,幾乎支持任何語言,可在任何地方運行。Fn 是在 Go 上編寫的,因此具有性能和輕量級等優勢。Fnproject 支持 AWS Lambda 格式,可以輕松導入 Lambda 函數并使用 Fnproject 啟動。
成本: 免費
本地服務發現
51、CoreDNS
CoreDNS 是一組用 Go 編寫的插件,用于執行 DNS,帶有額外 Kubernetes 插件的 CoreDNS 可取代默認 Kube-DNS 服務,并實現為 Kubernetes 基于 DNS 服務定義的規范。CoreDNS 還可偵聽通過 UDP/TCP、TLS 和 gRPC 傳入的 DNS 請求。