k8s組成
(1)以container為起點,k8s既然是容器編排工具,那么一定會有container
(2)k8s中要有自己的最小操作單位,稱之為Pod,通過Pod管理container
(3)那Pod的維護誰來做呢?那就是ReplicaSet,通過selector來進行管理
(4)Deployment來監控和維護Pod和ReplicaSet
(5)相同或者有關聯的Pod分門別類一下使用Label來管理
(6)具有相同label的service要是能夠有個名稱就好了,Service
(7)Pod運行在哪里呢?當然是機器咯,比如一台centos機器,我們把這個機器稱作為Node
(8)多台Node共同組成集群,把之前的Label,Service也一起畫上去
K8s的組件
01-一個操作集群的客戶端,也就是和集群打交道
kubectl
02-請求肯定是到達Master Node,然后再分配給Worker Node創建Pod之類的
關鍵是命令通過kubectl過來之后,是不是要認證授權一下?
03-請求過來之后,Master Node中誰來接收?
APIServer
04-API收到請求之后,接下來調用哪個Worker Node創建Pod,Container之類的,得要有調度策略
Scheduler
05-Scheduler通過不同的策略,真正要分發請求到不同的Worker Node上創建內容,具體誰負責?
Controller Manager
06-Worker Node接收到創建請求之后,具體誰來負責
Kubelet服務,最終Kubelet會調用Docker Engine,創建對應的容器[這邊是不是也反應出一
點,在Node上需要有Docker Engine,不然怎么創建維護容器?]
07-會不會涉及到域名解析的問題?
DNS
08-是否需要有監控面板能夠監測整個集群的狀態?
Dashboard
09-集群中這些數據如何保存?分布式存儲
ETCD
K8s架構圖
官網K8S架構圖
https://kubernetes.io/docs/concepts/architecture/cloud-controller/