Kubernetes已經成爲大規模部署通過編輯的應用程序的標準方法(許多人會說這是標準方法)。可是,若是Kubernetes能夠幫助咱們控制無序和複雜的經編輯的部署,那麼有什麼方法能夠幫助咱們控制Kubernetes呢?畢竟,它也多是複雜、混亂和難以管理的。web
隨着Kubernetes的成長和演變,它的一些過分行爲極可能會從內部獲得控制。可是有些人並無等到Kubernetes變得更容易使用,而是對生產中Kubernetes的許多常見問題推出了本身的解決方案。shell
在這裏,咱們重點介紹10個以各類方式簡化Kubernetes的項目,從簡化命令行交互,到簡化應用程序部署語法,再到與AWS集成,再到爲多個集羣提供一個窗口。服務器
目 錄網絡
Bitnami Cabin:適用於iOS和Android的Kubernetes面板編輯器
Kedge:簡明的Kubernetes部署定義模塊化
Koki Short:可管理的Kubernetes密鑰清單函數
Kops:Kubernetes集羣的命令行操做工具
Kubebox:Kubernetes的終端控制檯測試
Kube-monkey:Kubernetes的Chaos Monkey編碼
Kube-ps1:智能Kubernetes命令提示符
Kube-prompt:交互式Kubernetes客戶端
Kube-shell:用於Kubernetes CLI的shell
Kubespy:實時監控Kubernetes資源
Bitnami Cabin:適用於iOS和Android的Kubernetes面板
任何現代web應用程序或服務都應該具備某種移動界面。Cabin爲Kubernetes管理員提供了一個版本的Kubernetes面板,能夠經過iOS或Android智能手機訪問。整個Kubernetes面板中提供的許多功能均可以從Cabin啓動,包括Helm圖表,擴展部署,讀取pod日誌以及訪問Kubernetes託管的基於Web的應用程序。
Kedge:簡明的Kubernetes部署定義
關於Kubernetes最多見的抱怨是它的清單(或應用程序定義)是多麼複雜和冗長。編寫它們是一件痛苦的事情,維護它們也是一件痛苦的事情,因此人們求助於第三方工具來緩解也就不足爲奇了。Kedge提供了更簡單、更簡潔的語法。向Kedge提供了Kubernetes定義文件的簡單版本,Kedge將該簡單定義擴展爲完整的Kubernetes對應文件。與Koki Short(見下文)不一樣,Kedge的聲明文件不使用模塊化語法,它只是將應用程序定義簡化爲通用的快捷方式。
Koki Short:可管理的Kubernetes密鑰清單
Koki Short相似上述的Kedge是一個改進應用程序定義或清單在Kubernetes中工做方式的項目。像Kedge定義同樣,Short定義使用縮寫的語法來描述Kubernetes pod,它能夠被翻譯成完整的語法,而後再返回。與Kedge定義不一樣,Short定義也是模塊化的,這意味着一個Short聲明中的細節能夠在其餘聲明中重用,這樣就能夠簡單地定義具備公共元素的許多pod。
Kops:Kubernetes集羣的命令行操做
Kops由Kubernetes團隊開發,容許您從命令行管理Kubernetes集羣。它支持在AWS和GCE上運行的集羣,VMware vSphere和其餘環境也在開發中。除了自動設置和拆卸過程以外,Kops還能夠幫助實現其餘類型的自動化。例如,它能夠生成Terraform配置,從而容許使用Terraform從新部署集羣。
Kubebox:Kubernetes的終端控制檯
Kubebox是Kubernetes的高級終端控制檯,它爲Kubernetes及其API提供的不只僅是一個美化的命令行。它提供內存和CPU利用率的交互式顯示、pod列表、運行日誌和配置編輯器。最重要的是,它能夠做爲Linux、Windows和MaciOS的獨立應用程序使用。
Kube-monkey:Kubernetes的Chaos Monkey
對一個系統進行壓力測試的一種萬無一失的方法是隨機打碎東西。這就是Netflix的Chaos Monkey背後的理論,這是一種混沌工程工具,能夠隨機終止生產中運行的虛擬機和本地編輯,以「鼓勵」開發人員構建更具彈性的系統。Kube-monkey是對壓力測試Kubernetes集羣的相同基本思想的實現。它的工做方式是在你指定的集羣中隨機破壞pod,而且能夠在特定的時間窗內進行微調。
Kube-ps1:智能Kubernetes命令提示符
Kube-ps1不是面向Kubernetes的第一代索尼PlayStation仿真器(儘管這很棒)。它是Bash的一個簡單添加,在提示符中顯示當前的Kubernetes上下文和名稱空間。Kube-shell包括這個功能以及許多其餘功能,可是若是您只想要更智能的提示符,Kube-ps1所需開銷很小。
Kube-prompt:交互式Kubernetes客戶端
Kubernetes CLI的另外一個最小但有用的修改是Kube-prompt,它容許您與Kubernetes客戶機輸入至關於交互式命令會話的內容。Kube-prompt使您沒必要輸入kubectl做爲每一個命令的前綴,併爲每一個命令提供上下文信息自動完成。
Kube-shell: Kubernetes CLI的Shell
Kubernetes命令行功能強大,但與任何命令行應用程序同樣,選擇它的選項可能很是繁瑣。Kube-shell將標準的Kubernetes命令行包裝在一個集成的shell中,該shell提供常見命令的自動完成和自動建議,包括Kubernetes服務器提供的建議(例如服務名稱)。它還提供了更健壯的命令歷史記錄函數、vi風格的編輯模式,以及用戶、名稱空間、集羣和其餘特定於安裝的詳細信息的運行上下文信息。
Kubespy:實時監控Kubernetes資源
Pulumi的Kubespy是一個診斷工具,它容許您實時跟蹤Kubernetes資源的變化,爲您提供一種動態的文本視圖面板。例如,您能夠在啓動pod時查看pod狀態的更改:將pod定義寫入Etcd,計劃在節點上運行pod,在建立pod的節點上運行Kubelet,最後將pod標記爲running。Kubespy能夠做爲獨立的二進制文件運行,也能夠做爲Kubectl的插件運行。
AWS的Kubernetes入口控制器
Kubernetes經過名爲Ingress的服務向集羣提供外部負載平衡和網絡服務。Amazon Web Services提供負載平衡功能,但不會自動將這些服務與Kubernetes的功能進行耦合。AWS的Kubernetes入口控制器彌補了這一差距。入口控制器自動管理集羣中每一個入口對象的AWS資源,爲新的入口資源建立負載平衡器,爲已刪除的資源刪除負載平衡器,並利用AWS雲造成來確保集羣的一致狀態。它還自動管理集羣中使用的其餘元素,如SSL證書和EC2自動伸縮羣。
kube - os -view:用於多個Kubernetes集羣的面板
Kubernetes有一個用於通用監視的有用面板,可是Kubernetes社區正在嘗試使用其餘方法向Kubernetes管理員提供有用的數據。Kube-os-view就是這樣一個實驗:它提供了多個Kubernetes集羣的概覽視圖,以圖形化的方式呈現,所以您能夠一眼看到集羣中pod的CPU和內存使用狀況以及狀態。注意,它不容許您調用任何命令,這徹底是爲了可視化。可是它提供的可視化效果是驚人的和有效的,這是可與操做中心的壁監視器完美結合。
Skaffold: Kubernetes的迭代開發
Skaffold是谷歌爲Kubernetes開發的工具之一,是一種爲Kubernetes應用程序執行連續部署的方法。當您對源代碼進行更改時,Skaffold會自動檢測它們,觸發構建和部署流程,並在出現錯誤時警告您。Skaffold徹底在客戶端運行。它能夠在現有的CI/CD渠道中使用,並與一些外部構建工具集成,主要是谷歌本身的Bazel。
Stern和Kubetail: Kubernetes的日誌跟蹤
Stern容許您從Kubernetes中的pod和本地編輯中生成顏色編碼的輸出(根據tail命令)。這是一種將多個資源的全部輸出管道傳輸到一個能夠一眼讀取的流中的快速方法。同時,您有一種一目瞭然的方法(顏色編碼)來區分流。
Kubetail相似地未來自多個pod的日誌聚合到單個流中,並對不一樣pod和本地編輯進行顏色編碼。可是Kubetail是一個Bash腳本,所以它只須要一個shell。
Teresa:Kubernetes的簡單PaaS
Teresa是一個應用程序部署系統,在Kubernetes上做爲簡單的PaaS運行。組織成團隊的用戶能夠部署和管理屬於他們的應用程序。這使那些受給定應用程序信任的人更容易使用它,而沒必要直接處理Kubernetes。