溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

淺談kubernetes:k8s的部署架構以及工作原理

發布時間:2020-08-03 08:55:36 來源:網絡 閱讀:2952 作者:清白之年 欄目:云計算

對于每個想落地kubernetes應用的工程師來說,熟悉kubernetes的架構和工作原理是必經之路,也是必須知道的知識,只有了解kubernetes的架構和工作原理才能更好的應用kubernetes 。

kubernetes 整體架構

Kubernetes最初源于谷歌內部的Borg,提供了面向應用的容器集群部署和管理系統,所以整體的架構和borg很相似,整個架構有api server,control manager,scheduler,etcd,kubelet,kube-proxy,network-plugin等相關組件完成,整體架構如下:

淺談kubernetes:k8s的部署架構以及工作原理

其中:

Api server,Control manager,Scheduler,Etcd屬于master節點,相關組件功能如下:

1.Etcd:保存了整個集群的狀態;

2.Apiserver:提供了資源操作的唯一入口,并提供認證、授權、訪問控制、API注冊和發現等機制;

3.Controller manager:負責維護集群的狀態,比如故障檢測、自動擴展、滾動更新等;

4.Scheduler:負責資源的調度,按照預定的調度策略將Pod調度到相應的機器上;

Kubelet,Container runtine,Kube-proxy屬于woker節點,相關組件功能如下:

1.kubelet:負責維護容器的生命周期,同時也負責Volume(CSI)和網絡(CNI)的管理;

2.Container runtime:負責鏡像管理以及Pod和容器的真正運行(CRI);

3.kube-proxy:負責為Service提供cluster內部的服務發現和負載均衡;
kubernetes 工作原理

如下為kubernetes的整個工作流程圖:

淺談kubernetes:k8s的部署架構以及工作原理

下面為一個個pod創建過程:

1.用戶提交創建Pod的請求,可以通過API Server的REST API ,也可用Kubectl命令行工具,支持Json和Yaml兩種格式;

2.API Server處理用戶請求,存儲Pod數據到etcd;

3.Schedule通過和API Server的watch機制,查看到新的Pod,嘗試為Pod綁定Node;

4.過濾主機:調度器用一組規則過濾掉不符合要求的主機,比如Pod指定了所需要的資源,那么就要過濾掉資源不夠的主機;

5.主機打分:對第一步篩選出的符合要求的主機進行打分,在主機打分階段,調度器會考慮一些整體優化策略,比如把一個Replication Controller的副本分布到不同的主機上,使用最低負載的主機等;

6.選擇主機:選擇打分最高的主機,進行binding操作,結果存儲到etcd中;

7.Kubelet根據調度結果執行Pod創建操作: 綁定成功后,會啟動container,docker run,scheduler會調用API在數據庫etcd中創建一個bound pod對象,描述在一個工作節點上綁定運行的所有pod信息。運行在每個工作節點上的Kubelet也會定期與etcd同步bound pod信息,一旦發現應該在該工作節點上運行的bound pod對象沒有更新,則調用Docker API創建并啟動pod內的容器;

淺談kubernetes:k8s的部署架構以及工作原理

在這期間,Control Manager同時會根據kubernetes的mainfiles文件執行rc pod的數量來保證指定的pod副本數。而其他的組件,比如scheduler負責pod綁定的調度,從而完成整個pod的創建。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女