Kubernetes Components 組件簡介。
Kubernetes實際上是由許多組件(components)組成的叢集(cluster),這些組件又分為Control Plane Components與Node Components兩類。
Control Plane Components
Kubernates cluster的控制協調中心,負責管理cluster的每個節點(nodes)。運行Control Plane Components的node又稱作master node。
Control Plane Components包含以下組件:
kube-apiserver:提供Kubernetes API接口,負責Control Plane Components內外組件間的溝通。
etcd:鍵值資料庫(key-value store),存放全部的cluster資料的備份(backing store)。
kube-scheduler:負責監控新建的pods並分派到適合的node去運行。
kube-controller-manager:運行controller程序來監控並維護nodes的狀態及確保pods的數量。
cloud-controller-manager(optional):連結cluster與雲端服務的API,運行雲端服務的controller。
Node Components
負責提供工作(workload)的運行環境的機器,可以是虛擬機或實體機,又稱為worker node。每一個nodes是由Control Plane管理。Kunbernates把工作放入pod中的container,然後把pod分派到node來執行。
kubelet:運行在nodes上並向Control Plane註冊node,確保containers依照PodSpec運行在pods。
kube-proxy:運行在nodes上的網路代理,維護nodes的網路規則,提供pods間及對外的網路通訊。
Container runtime:容器執行環境,例如Docker、containered、CRI-O等實作Kubernetes CRI的容器。
下圖是Kubernates cluster中各組件的關係圖。可以看到組件間透過Kubernates API溝通。Node中運行多個pods,pods中有一或多個container,container中運行著workload,也就是應用程式。
Kubernate cluster components diagram
+---------------------------------------------------------------------------------+
| Control Plane |
| +------------+ (master node) |
| | etcd |<---------------+ |
| +------------+ | |
| v |
| +--------------+ +--------------+ +-----------------------+ |
| |kube-scheduler|<------->|kube-apiserver|<------->|kube-controller-manager|-+ |
| +--------------+ |-+ +--------------+ |-+ +-----------------------+ |-+ |
| +--------------+ | +--------------+ | +-----------------------+ | |
| +--------------+ +-------------+ +-----------------------+ |
| ^ |
+---------------------------------|-----------------------------------------------+
|
| +--------------+
| | Node |-+
| | (worker node)| |-+
| | +----------+ | | |
+----->| kubelet | | | |
+----------------------+ | | +----------+ | | |
| Pod | | | +----------+ | | |
| | +----->|kube|proxy| | | |
| +--------------+ | | +----------+ | | |
| | container |-+ | | +---+ +---+ | | |
| | +----------+ | |-+ | | |pod| |pod| | | |
| | | workload | | | | | | +---+ +---+ | | |
| | | (app) | | | | | | +---+ +---+ | | |
| | +----------+ | | | | | |pod| |pod| | | |
| +--------------+ | | | | +---+ +---+ | | |
| +--------------+ | | +--------------+ | |
| +--------------+ | +--------------+ |
+----------------------+ +--------------+
2 則留言:
請問豬大現在工作會需要使用k8s嗎
@SamChen 沒有耶,我工作中從沒用過,包括現在也是,所以都只停在觀念上稍微了解而已,也沒親自玩過。
張貼留言