爲高效 Ops 和 SRE 團隊準備的 10 個開源 k8s 工具

若是你正在 Kubernetes 上工做,你的 SRE 和 Ops 團隊須要正確的工具來確保Kubernetes集羣的高可用和在其中運行的工做負載。這裏咱們列出了10個開源Kubernetes工具來使得你的SRE和Ops團隊更高效的達到他們的服務水平目標(SLA)。ios

Kube-ops-view

Kube-ops-view爲多個Kubernetes集羣提供了一個通用的操做視圖,對於SRE和Ops團隊來講這是一個方便的工具,Kube-ops-view提供只讀的系統儀表。Kube-ops-view 提供了一些很是酷的特性:git

  • 在多個Kubernetes 集羣間切換。
  • 渲染節點並指明它們的整體狀態(「Ready」)。
  • 展現節點的容量和資源利用率(CPU,內存)。
  • 指明pods的狀態(綠色:ready/running,紅色:error等)。
  • 爲節點和pods提供工具提示信息。
  • pod建立和終止。
  • 使用屏幕令牌在TV屏幕上提供儀表盤。

此處輸入圖片的描述

Cabin

Cabin是一個Kubernetes 的原生的手機App儀表盤。Cabin UI是使用React Native,所以能夠運行在 IOS和Android硬件上。它是一個移動助手,提供了細粒度操做來維護Kubernetes 資源。Cabin app作了觸摸優化。例如,你能夠經過一個左滑動來刪除一個pod。你也能夠經過一個手指滾動來擴展部署。 github

此處輸入圖片的描述
此處輸入圖片的描述
此處輸入圖片的描述
此處輸入圖片的描述
Cabin 的一些有趣的特性:

  • 無縫的支持 Google Kubernetes Engine (GKE),你能夠直接在你的移動手機上建立 GKE集羣。
  • 早期支持幫助圖表,你能夠瀏覽圖表庫,而且經過點擊移動運行圖表。
  • 訪問 pod 日誌,經過標籤(label)搜索資源,經過改變你部署的鏡像觸發滾動升級等。

Kubectx

若是你工做在多k8s 集羣,kubectx是另一個必需要有的工具。Kubectx與kubens捆綁在一塊兒,當你使用kubectl的時候,容許你在Kubernetes集羣和命名空間之間切換。 shell

此處輸入圖片的描述
此處輸入圖片的描述

kubectx 和 kubens支持在bash/zsh 環境經過 tab 來幫助你補全長的長下文名稱。你不在須要記得完整的上下文名稱。數據庫

Kube-shell

Kube-shell是一個和Kubernetes CLI集成的 Shell,它有一些很是漂亮的特性,好比:安全

  • 自動補全命令,自我提示,聯機文檔。
  • 經過使用 up/down 鍵盤命令訪問歷史命令的執行。
  • 從kubeconfig獲取當前上下文,在 集羣/命名空間之間很是容易的切換。

此處輸入圖片的描述

相關工具

Kube-prompt是另一個有自動補全特性的交互式Kubernetes客戶端。它接受沒有kubect前綴的命令。bash

另外,Kube-ps1是一個相似的腳本讓你添加配置在kubectl的當前Kubernetes 上下文和命名空間到你的Bash/Zsh提示字符。服務器

最後,Kail是一個 Kubernetes tail。做爲一個Kubernetes日誌查看器,kail容許你使用選擇器從匹配的pods流式的查看日誌。網絡

Kail - kubernetes 日誌查看器 架構

此處輸入圖片的描述

你能夠基於標準的標籤選擇器匹配 pods,經過名字,經過服務,經過部署,等等。

Stern是另一個專一於 pods和 pods中容器的日誌 tail 解決方案。使用 Stern,爲了快速調試,結果是有顏色的。

Telepresence

Telepresence是一個開源的工具,可讓你在本地調試服務,雖然該服務與它位於遠程Kubernetes集羣或者是遠程雲服務資源(如數據庫)的依賴服務保持鏈接。

Telepresence 本地開發和和對遠程Kubernetes 集羣的調試。

此處輸入圖片的描述

就我的而言,我認爲Telepresence有很大的潛力,對於運行在 Kubernetes 上的服務而言,Telepresence已是一個豐富的本地開發環境。在線調試是一個新事物,可是發展很快。

Weave Scope

Weave Scope是一個Docker 和 Kubernetes的排錯&監控工具。它爲你的應用自動的構建邏輯拓撲以及基礎設施,以便你的SRE和Ops團隊能夠直觀的明白,監控,控制你的容器,基於應用的微服務。

此處輸入圖片的描述
此處輸入圖片的描述

除了拓撲視圖,Weave Scope也提供了一個深刻視圖,好比節點和進程之間的任何事情,包括部署,服務,副本集,pods 和容器。另外,你基於CPU和內存使用率應用過濾,或者是經過名字,標籤,甚至路徑使用搜索快速的找到節點類型,容器和進程。

PowerfulSeal

PowerfulSeal 的靈感來源於 Chaos Monkey,由 Bloomberg 工程師團隊開發。它能夠給你的Kubernetes集羣添加混亂,如殺掉目標的pods或者是節點。它以兩個模式操做:交互式和自治的。

  • 交互式模式被設計爲容許你發現你的集羣組件,而且人工的中止一些事情看會發生什麼。它操做在節點,pods,部署,和命名空間上。
  • 自治模式讀取一個策略文件,能夠包含任意數量的pod和節點的場景。每一個場景描述了在集羣上匹配,過濾,和行動的列表。

策略文件是以YAML 格式編寫的,包含將被自治客戶端執行的場景。

相關工具

kube-monkey是用於Kubernetes集羣的Netflix的Chaos Monkey 的另一種實現方式。它隨機刪除在Kubernetes集羣中的pods,鼓勵並驗證恢復服務的開發。

Marmot

Marmot是一個來自於谷歌的工做流執行引擎,用於處理SRE和Ops須要的工做流。它被設計爲處理基礎架構變動的工具,但它能夠和Kubernetes一塊兒使用。

它特別適用於那些有必定節奏,可能須要對健康進行狀態檢查的任何類型的操做。所以,好比,你正在使用大量實例發佈一個新服務版本,這時你執行了一個增量在受控的發佈(金絲雀發佈)。

Ark

Ark 是一個用於管理從你的Kubernetes資源和卷作災難恢復的工具。Ark提供一個簡單而且魯棒的方式來備份和從系列的檢查點恢復Kubernetes資源和持久化的卷。備份文件被存儲在一個對象存儲服務(如,Amazon S3)。

Ark 確保你以一個高效的方式自動化如下場景:

  • 減低災難恢復的TTR(響應時間)。
  • Kubernetes API 對象提供跨雲服務器商遷移。
  • 經過複製生產環境副本,開發和測試環境的設置(+CI)。

Ark 附帶一個集羣服務(Ark server)和CLI(Ark 客戶端),集羣服務最重要的工做就是它運行全部的Ark控制器。Ark服務器執行實際的備份,校驗,和把備份文件加載進雲對象存儲中。

Sysdig

Sysdig是一個容器排錯工具,它能夠捕獲系統調用和來自於Linux內核的事件。簡單的說,對於整個集羣,Sysdig就是strace + tcpdump + htop + iftop + lsof + wireshark。

  • Sysdig 在物理機和虛擬機的操做系統級別使用。經過安裝進Linux內核,捕獲系統調用和其餘操做系統事件。Sysdig 也能夠爲系統活動建立trace文件。

相關工具

Sysdig Inspect是一個可視化經過Sysdig收集的數據的接口。Sysdig Inspect 使得SRE和Ops團隊在容器排錯和安全調查方面很方便。

  • Inspect的用戶接口被設計爲直觀的導航Sysdig捕獲的數據,包含系統,網絡和一個Linux系統的應用活動。Sysdig Inspect幫助你明白趨勢,相關性的指標,和大海撈針(從一堆數據中找到關鍵數據)。它包含了功能設計來支持性能和安全調查,深刻容器查詢。

此處輸入圖片的描述

Sysdig Falco 是另一個構建與Sysdig收集的數據基礎之上的工具。Falco監控活動行爲,它被設計爲發現你應用中異常的活動。好比,使用Falco你能夠發現活動,如:

  • 運行在一個容器中的腳本。
  • 一個運行在私密模式的容器。
  • 一個掛載在敏感主機的容器。

最後的思考

Kubernetes 生態系統正在爆炸性增加。有大量的開源和商業工具能夠幫助你更高效的操做非關鍵性的Kubernetes集羣和服務。

相關文章
相關標籤/搜索