前面咱們分享了 mater 和 worker 節點里面都有哪些組件,他們又是各自主要負責的工作是什么,現在我們心里應該都有數了吧
master 節點:
etcd 存儲資源配置,ApiServer 提供 RESTful Api 用于交互,scheduler 用于調度 pod,controller manager 控制器管理器
worker 節點:
kubelet 管理 節點上的所有組件和內容,kube-proxy,作為代理將數據給到 pod
從控制器到 pod 運行,是如何達成的?
那么今天來分享一下,這些組件都是如何高效配合協同作戰的,我們可以從控制器作為切入點,來看看
前面我們說到 master 里面的組件是不會直接去創建和運行 pod 的,只會和 ApiServer 通信,那么我們來看看創建一個 控制器的資源,到最終 pod 運行,中間都會涉及哪些控制器,哪些資源,哪些動作
我們都知道,咱們在生產環境下面,是不會直接去創建 pod 資源的,而是通過 RC / RS 去管控 pod ,然后我們是否還記得 Deployment 資源是會去管控 RS 的,那么我們就用之前環境中一直有的 deploy 來演示一下效果吧
看一下環境中的 deploy
可以看到環境中是有 5 個 pod,我們進入 newkubia ,將副本數修改為 3 個,并且在另外一個窗口進入到 master 節點,開啟事件監控 kubectl get events --watch
在將 newkubia Deployment 從 5 個副本修改到 3 個副本的時候,我們可以看到此處的事件監控能夠看到監控的信息
[xmt@VM-20-15-centos ~]$ kubectl get events --watch
LAST SEEN TYPE REASON OBJECT MESSAGE
0s Normal ScalingReplicaSet deployment/newkubia Scaled down replica set newkubia-85df599b7f to 3
0s Normal Killing pod/newkubia-85df599b7f-zhwnw Stopping container newkubia
0s Normal Killing pod/newkubia-85df599b7f-jzjsn Stopping container newkubia
0s Normal SuccessfulDelete replicaset/newkubia-85df599b7f Deleted pod: newkubia-85df599b7f-zhwnw
0s Normal SuccessfulDelete replicaset/newkubia-85df599b7f Deleted pod: newkubia-85df599b7f-jzjsn
咱可以在 REASON 字段處看到,經歷的過程是 **ScalingReplicaSet -> Killing newkubia-85df599b7f-zhwnw -> Killing newkubia-85df599b7f-jzjsn -> SuccessfulDelete **
上述過程中,就會涉及到這些 控制器:
- Deployment 控制器
- ReplicaSet 控制器
還涉及 調度器,ApiServer 和 kubelet 和 docker
首先是各種控制器會監聽 ApiIServer 里面對應的資源,當我們修改 newkubia Deployment 清單的副本數時候,
- kubectl 會發 http 請求 POST 方法去請求 ApiServer,ApiServer 修改對應的 etcd 數據
- Deployment 控制器監控到 Deployment 資源有變動,則會去和 APiServer 交互修改 ReplicaSet 資源的副本數
- ReplicaSet 此時監聽到 ApiServer 處的 ReplicaSet 資源有變動,則會 與 ApiServer 進行交互 去通知 相應的 pod 資源 進行需要進行更新
- 調度器 scheduler 同樣也是監聽到 ApiServer 中的 pod 資源有變動后,Scheduler 就會去和 ApiServer 交互 在相應節點上配置增刪 pod
- 對應節點的 kubelet 監聽到 ApiServer 中 pod 資源的變化,便會去通知自己節點的 docker,進行增加運行容器和刪除容器的動作
通過上述簡圖和描述,相應到這里,xdm 對于修改一個 deployment 資源的副本數, k8s 中從控制器 到 實際的 pod 會涉及哪些組件了吧!
今天就到這里,學習所得,若有偏差,還請斧正
歡迎點贊,關注,收藏
朋友們,你的支持和鼓勵,是我堅持分享,提高質量的動力
好了,本次就到這里
技術是開放的,我們的心態,更應是開放的。擁抱變化,向陽而生,努力向前行。
我是阿兵云原生,歡迎點贊關注收藏,下次見~
更多的可以查看 零聲每晚八點直播:https://ke.qq.com/course/417774