成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kubernetes 從提交 deployment 到 pod 運行的全過程

開發 架構 云原生
當用戶向 Kubernetes 提交了一個創建 deployment 的請求后,Kubernetes 從接收請求直至創建對應的 pod 運行這整個過程中都發生了什么呢?

當用戶向 Kubernetes 提交了一個創建 deployment 的請求后,Kubernetes 從接收請求直至創建對應的 pod 運行這整個過程中都發生了什么呢?

kubernetes 架構簡述

在搞清楚從 deployment 提交到 pod 運行整個過程之前,我們有先來看看 Kubernetes 的集群架構:

上圖與下圖相同:

如圖所示,k8s 集群分為 control plane 控制平面和 node 節點。

control plane 控制平面(也稱之為主節點)主要包含以下組件:

  • kube-api-server: 顧名思義,負責處理所有 api,包括客戶端以及集群內部組件的請求。
  • etcd: 分布式持久化存儲、事件訂閱通知。只有 kube-api-server 直接操作 etcd,其它所有組件都是與 kube-api-server 進行相互。
  • scheduler: 處理 pod 的調度,將 pod 綁定到具體的 node 節點。
  • controller manager: 控制器,處理各種資源對象。
  • cloud controller manager: 對接云服務商的控制器。

node 節點,專門部署用戶的應用程序(與控制平面隔離,避免影響到 k8s 的核心組件),主要包含以下組件:

  • kubelet: 管理節點上的 pod 以及狀態檢查和上報。
  • kube-proxy: 進行流量的路由轉發(目前是通過操作節點的 iptables 或者 ipvs 實現)。
  • CRI: 容器運行時接口。

從 Deployment 到 Pod

從 Deployment 到 Pod 的整個過程如下圖所示:

1. 請求發送到 kube-api-server

請求發送到 kube-api-server,然后會進行認證、鑒權、變更、校驗等一系列過程,最后將 deployment 的數據持久化存儲至 etcd。

在這個過程我們可以通過 mutation admission 的 webhook 自主地對資源對象進行任意的變更,比如注入 sidecar 等等。

2. controller manager 處理

controller manager 組件針對不同的資源對象有不同的處理部分。

針對 Deployment,由于其并不直接管理 Pod,而是 Deployment 管理 ReplicaSet,ReplicaSet 再管理 Pod:

因此其中涉及到 controller manager 中的兩個部分:

  • deployment controller
  • replicaset controller

(1) 先是 deployment controller 監聽到 deployment 的創建事件,然后進行相關的處理,最后創建 replicaset。

(2) 然后 replicaset controller 監聽到 replicaset 的創建事件,進行相關處理后,最后創建 pod。

3. scheduler 調度

scheduler 接受到 pod 需要調度的事件后,進行一系列調度邏輯處理,最后選擇一個合適的 node 節點,將 pod 綁定到這個節點上(所謂的節點調度在這里只是修改 pod 數據,對其中的 nodeName 進行賦值)。

具體的調度算法比較復雜,涉及強制性調度、親和與反親和、污點和容忍、以及硬件資源計算、優先級等等,本文不做展開。

4. 節點 kubelet 處理

調度完成后,pod 被綁定的 node 節點上的 kubelet 同樣通過 kube-api-server 會接受到相應的事件,然后 kubelet 會進行 pod 的創建。

在這個過程中 kubelet 會分別調用 CRI、CNI、CSI:

  • CRI(Container Runtime Interface): 容器運行時接口,CRI 插件負責執行拉取鏡像、創建、刪除容器等操作。CRI 的幾種常用插件:
  • containerd
  • CRI-O
  • Docker Engine
  • CNI(Container Network Interface): 容器網絡接口,CNI 插件負責給 pod 分配 IP 地址,確保 pod 能夠與集群內的其它 pod 進行通信。CNI 的幾種常用插件:
  • Cilium
  • Calico
  • CSI(Container Storage Interface): 容器存儲接口,CSI 插件負責與外部存儲提供者通信,執行卷的附加、掛載等操作。

所謂的接口其實只是定義了通信的規范或者標準(使用的是 grpc 協議),具體的實現則是交給了插件。

至此,Kubernetes 從創建 deployment 到 pod 運行的全過程就是這樣了。

責任編輯:趙寧寧 來源: 系統架構師Go
相關推薦

2024-01-02 09:19:15

kubernetes集群HTTP

2023-12-28 08:16:32

Spring容器管理

2025-06-04 02:35:00

2011-04-18 15:56:10

軟件測試

2011-02-22 10:46:02

Samba配置

2011-09-06 15:38:20

QT安裝

2011-01-21 17:51:52

2009-04-13 12:37:18

2024-05-23 13:26:27

2009-12-08 17:56:16

WCF配置

2025-04-07 08:00:00

KubernetesK8Spod

2010-10-08 09:03:51

2010-06-11 13:15:07

UML軟件

2017-04-25 18:03:11

Caffe深度學習框架

2010-07-21 14:51:19

telnet-serv

2019-05-14 15:27:31

MongoDB自動備份數據庫

2011-03-11 10:39:02

YUM安裝LAMP

2010-06-12 10:03:20

Ubuntu Grub

2010-11-19 10:11:49

Oracle物化視圖

2010-06-17 13:10:09

Linux Grub修
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天曰夜夜操 | 99国产精品视频免费观看一公开 | 久久国内精品 | 精品综合网 | 91免费在线| 日韩色图在线观看 | 欧美一区二区三区在线看 | 91亚洲视频在线 | 最新国产福利在线 | 夜夜骑综合| 久久精品一区二区三区四区 | 欧美一级片久久 | 国产成人久久av免费高清密臂 | 国产一级特黄真人毛片 | 久久久久成人精品 | 精品美女 | 蜜臀久久99精品久久久久野外 | 国产乱码精品一区二区三区中文 | 国产日韩一区二区三区 | 亚洲巨乳自拍在线视频 | 欧美一区二区三区,视频 | 精品国产91亚洲一区二区三区www | 伊人网伊人 | 中文字幕一区二区三区四区 | 亚洲欧美自拍偷拍视频 | 精品欧美一区二区精品久久 | 玖草资源| 天天艹天天干天天 | 一区二区三区四区不卡视频 | 亚洲一区二区三区在线免费观看 | 亚洲一区二区三区视频 | 日韩欧美在线视频播放 | 亚洲精品第一国产综合野 | 91久久视频 | 色狠狠桃花综合 | 午夜天堂精品久久久久 | 欧美视频1区 | 男女网站免费观看 | 爱草视频 | 国产精品一区二区视频 | 男人午夜视频 |