隨著應用程序開發向基于容器的方向發展,編排和管理資源的需求變得越來越重要。Kubernetes是一個開源的、功能強大的容器編排系統,用于管理容器化應用和服務,它提供了應用部署、規劃、更新、維護的一種機制,讓部署容器化的應用更加簡單并且高效。
云容器引擎(Cloud Container Engine,以下簡稱CCE)是一種托管的Kubernetes服務,可進一步簡化基于容器的應用程序部署和管理,您可以在CCE中方便的創建Kubernetes集群、部署您的容器化應用,以及方便的管理和維護。
集群優勢
傳統的應用部署方式是通過插件或腳本來安裝應用。這樣做的缺點是應用的運行、配置、管理、所有生存周期將與當前操作系統綁定,這樣做并不利于應用的升級更新/回滾等操作,當然也可以通過創建虛擬機的方式來實現某些功能,但是虛擬機非常重,并不利于可移植性。
新的方式是通過部署容器方式實現,每個容器之間互相隔離,每個容器有自己的文件系統,容器之間進程不會相互影響,能區分計算資源。相對于虛擬機,容器能快速部署,由于容器與底層設施、機器文件系統解耦的,所以它能在不同云、不同版本操作系統間進行遷移。
容器占用資源少、部署快,每個應用可以被打包成一個容器鏡像,每個應用與容器間成一對一關系也使容器有更大優勢,使用容器可以在build或release的階段,為應用創建容器鏡像,因為每個應用不需要與其余的應用堆棧組合,也不依賴于生產環境基礎結構,這使得從研發到測試、生產能提供一致環境。類似地,容器比虛擬機輕量、更“透明”,這更便于監控和管理。
集群(Cluster)是容器運行所需云資源的集合,包含了若干云服務器節點(物理服務器或者虛擬機)、負載均衡、虛擬私有云等云資源,您可以在集群中運行您的應用程序。在CCE中,我們可以創建若干集群,每個集群可以創建多個容器,每個容器里面運行一個應用實例,然后通過內置的負載均衡策略,實現對這一組應用實例的管理、發現、訪問,而這些細節都不需要運維人員去進行復雜的手工配置和處理。
集群架構
CCE采用兼容標準的Kubernetes集群,Kubernetes集群屬于主從分布式架構,主要由Master和Worker
Node組成,以及包括客戶端命令行工具kubectl和其它附加項。因此,在CCE集群中至少包含一個Master和多個Worker
Node,這些Worker Node稱為工作節點,這些節點都運行在Kubernetes集群編排系統中。
下圖簡要介紹了CCE集群的架構:

-
Master:管控集群的管理面節點,提供Kubernetes核心服務和應用程序工作負載的業務流程,對集群進行調度管理。Master
Node由API Server、Scheduler、Cluster State Store和Controller-Manager
Server所組成。
-
Node:業務運行的工作節點,用于運行應用程序的容器工作負載。Worker Node包含kubelet、kube proxy和Container Runtime。
-
kubectl:用于通過命令行與API Server進行交互,而對Kubernetes進行操作,實現在集群中進行各種資源的增刪改查等操作。
-
replication Controller:副本控制器,用于伸縮副本數量。
-
Pod:實例(Pod)是Kubernetes部署應用或服務的最小的基本單位。一個Pod封裝多個應用容器(也可以只有一個容器)、存儲資源、一個獨立的網絡IP以及管理控制容器運行方式的策略選項。
-
Container:容器。一個通過Docker鏡像創建的運行實例,一個節點可運行多個容器。容器的實質是進程,但與直接在宿主執行的進程不同,容器進程運行于屬于自己的獨立的命名空間。
-
Label:標簽。其實就一對key/value ,被關聯到對象上,比如Pod、標簽的使用我們傾向于能夠標示對象的特殊特點,并且對用戶而言是有意義的,但是標簽對內核系統是沒有直接意義的。
-
Service:服務,將運行在一組Pods上的應用程序公開為網絡服務的抽象方法。
CCE集群類型
云容器引擎CCE深度整合高性能的計算、網絡、存儲等服務,支持多可用區(Available zone,簡稱AZ)容災等技術構建高可用Kubernetes集群。
CCE已支持創建Kubernetes集群。
混合集群:支持虛擬機與裸金屬服務器、GPU虛擬機等異構節點的混合部署,基于高性能網絡模型提供全方位、多場景、安全穩定的容器運行環境。
注意
在創建、刪除、擴容和縮容集群的操作中,請不要在統一身份認證服務(IAM)中執行權限變更或修改的操作,可能會導致創建、刪除、擴容和縮容集群執行失敗。
CCE節點的容器網絡會使用一個網段作為容器網絡的網段,該網段在創建集群時可配置,默認為172.16.0.0/16;docker服務也會默認創建一個docker0的網橋,docker0的默認地址為172.17.0.1。創建集群時,請確保集群中VPC(虛擬私有云)所在的網段不能和上述兩個網段重復。使用VPC的對等連接功能時,對端的VPC也不能和上述兩個網段重復。