概念
概念部分幫助你學習關於Kubernetes的系統的部分和Kubernetes用來表示你的
集羣的抽象,並且幫助你得到kubernetes是如何工作的更深層的理解。
概述
爲了與Kubernetes一起工作,你能使用Kubernetes的api對象來描述你的集羣的
目標狀態:你要運行的應用或者是其它的工作程序是什麼,它們使用什麼容器的鏡像,
複本有多少個,爲了保證可用,你需要什麼樣的網絡和磁盤資源等等。通過使用
Kubernetes的api來創建對象,你能設置你的目標狀態,一般是基於命令行的接口
kubectl. 你也能使用Kubernetes的api直接與集羣交互,設置或者是改變你的目標
狀態。
一旦你設置了你的目標狀態,Kubernetes的控制面板開始工作讓集羣的現在的狀態
達到你的目標狀態。爲了實現這個任務,Kubernetes自動化地執行了一系列的任務
例如開始或者是重啓容器,對給定的程序的複本的數量進行縮放等等。Kubernetes的
控制面板由在你的集羣上運行的一系列的進程組成:
Kubernetes的主結點是一個運行在你的集羣中的一個單一的結點上的三個進程的集合。
它們是API服務器,控制器兼管理器,調度器。
在你的集羣的每一個單獨的非主結點上運行着兩個進程:
kube組件是用來與Kubernetes主結點通信的。
kube代理,它是 一個網絡代理它影響着每個結點上的Kubernetes的網絡服務。
Kubernetes的對象
Kubernetes包括了一系列的抽象來表示你的系統的狀態:已部署的
容器化的應用和工作程序,它們關聯的網絡與磁盤資源,還有關於你
的集羣正在做的事情的其它的信息。在Kubernetes的API中這些抽象被
表示爲對象。爲了更多的細節,見Kubernetes的對象的概述。
基本的Kubernetes的對象包括 操縱單元,服務,卷,命名空間。
此外,Kubernetes包括了一些高層的抽象叫做控制器。控制器基於
基本的對象,提供了附加的功能和方便的特性。它們包括:
複製集合,部署,有狀態的集合,守護的集合,作業。
Kubernetes控制面板
Kubernetes控制面板的各個部分,例如Kubernetes主結點和Kube組件的進程,控制着
Kubernetes如何與你的集羣通信。控制面板維護着一個記錄,這個記錄是在系統中的所有
的Kubernetes對象。控制面板運行着連續的控制循環來管理那些對象的狀態。在任何一個時刻
控制面板的控制循環將響應集羣中的變化並且它的工作是讓所有的這些對象的實際的狀態達到
你提供的目標的狀態。
例如,當你使用Kubernetes的API來創建了一個部署的對象,你爲系統提供了一個新的
目標狀態。Kubernetes控制面板記錄了對象的創建,通過啓動要求的應用並且調度它們到
集羣的結點中來執行你的指令,因此讓集羣的實際狀態達到了目標的狀態。
Kubernetes主結點
Kubernetes主結點負責維護你的集羣的目標狀態。當你與Kubernetes主結點交互時,
例如使用kubectl的命令行接口,你就正在與你的集羣的Kubernetes主結點進行通信。
這裏的主結點是指管理集羣狀態的進程的集合。這些進程都運行在集羣的一個結點上,這個
結點就被稱爲是主結點。爲了可用性和冗餘,主結點也能被複制。
Kubernetes結點
在一個集羣中的結點是機器(虛擬機,物理機等)運行着你的應用和雲工作流。
Kubernetes主結點控制着每一個結點;你將幾乎不與這些結點直接交互。