Kubernetes是一個完備的分布式系統支撐平臺,具有完備的集群管理能力,多擴多層次的安全防護和準入機制、多租戶應用支撐能力、透明的服務注冊和發現機制、內建智能負載均衡器、強大的故障發現和自我修復能力、服務滾動升級和在線擴容能力、可擴展的資源自動調度機制以及多粒度的資源配額管理能力。同時Kubernetes提供完善的管理工具,涵蓋了包括開發、部署測試、運維監控在內的各個環節。是一個全新的基于容器技術的分布式架構領先方案。Kubernetes(k8s)是Google開源的容器集群管理系統(谷歌內部:Borg)。在Docker技術的基礎上,為容器化的應用提供部署運行、資源調度、服務發現和動態伸縮等一系列完整功能,提高了大規模容器集群管理的便捷性。在集群管理方面,Kubernetes將集群中的機器劃分為一個Master節點和一群工作節點Node,其中,在Master節點運行著集群管理相關的一組進程kube-apiserver、kube-controller-manager和kube-scheduler,這些進程實現了整個集群的資源管理、Pod調度、彈性伸縮、安全控制、系統監控和糾錯等管理能力,并且都是全自動完成的。Node作為集群中的工作節點,運行真正的應用程序,在Node上Kubernetes管理的最小運行單元是Pod。Node上運行著Kubernetes的kubelet、kube-proxy服務進程,這些服務進程負責Pod的創建、啟動、監控、重啟、銷毀以及實現軟件模式的負載均衡器。

Kubernetes的巨大成功及其運維復雜性使得迫切需要對其進行抽象化。進入高門檻加上詳盡的界面,需要進行抽象化,以幫助促進整個組織采用Kubernete。只是重申一下,并不是所有團隊都可以“多做工作,讓其他團隊少做工作”。抽象Kubernetes原語以使開發人員體驗更好的能力是平臺的核心目的。
一致性是應用程序平臺的標志。平臺必須支持可重復和可復制的按需構建。提升平臺體驗的是跨所有語言和框架擴展同質體驗的能力。無論團隊使用何種語言,保持相同的體驗都有助于支持當今能夠以任何編程語言編寫服務的需求。如果平臺支持原生構建過程以實現這一點,那么擴展和定制此構建過程的能力是平臺成功的關鍵因素。
應用程序平臺必須能夠為開發團隊提供高速率。高速是兩個因素的派生,即快速的應用程序交付和短的開發周期。短的開發周期來自于減少開發人員的認知負荷和對現代實踐(如CI/CD)的原生支持。應用程序平臺必須支持從源代碼開始的構建工作流。平臺還必須能夠以可重復的方式在任何遠程登臺實例上支持應用程序的部署。
敏捷應用程序的創建和部署:與使用 VM 鏡像相比,提高了容器鏡像創建的簡便性和效率。
持續開發、集成和部署:通過快速簡單的回滾(由于鏡像不可變性),支持可靠且頻繁的 容器鏡像構建和部署。關注開發與運維的分離:在構建/發布時而不是在部署時創建應用程序容器鏡像, 從而將應用程序與基礎架構分離??捎^察性不僅可以顯示操作系統級別的信息和指標,還可以顯示應用程序的運行狀況和其他指標信號??玳_發、測試和生產的環境一致性:在便攜式計算機上與在云中相同地運行??缭坪筒僮飨到y發行版本的可移植性:可在 Ubuntu、RHEL、CoreOS、本地、 Google Kubernetes Engine 和其他任何地方運行。以應用程序為中心的管理:提高抽象級別,從在虛擬硬件上運行 OS 到使用邏輯資源在 OS 上運行應用程序。松散耦合、分布式、彈性、解放的微服務:應用程序被分解成較小的獨立部分, 并且可以動態部署和管理 - 而不是在一臺大型單機上整體運行。資源隔離:可預測的應用程序性能。資源利用:高效率和高密度。Kubernetes為你提供了一個可彈性運行分布式系統的框架。 Kubernetes 會滿足你的擴展要求、故障轉移、部署模式等。