kubernetes(一篇)主要組件介紹,pod創建流程


kubernetes(一篇)主要組件介紹,pod創建流程

kubernetes:

   采用Pod和Label這樣的概念把容器組合成一個個的互相存在依賴關系的邏輯單元。相關容器被組合成Pod后被共同部署和調度,形成服務(Service)

 

可以看到kubernetes包含master節點和node節點

  1、master節點:負責調度,存儲集群狀態(服務注冊發現),提供統一API入口,一個master對應一群node節點。

  2、node節點: node節點存儲pod(pod內部封裝容器),一個node節點理論上可以存儲無數個pod,但是受限於硬件資源限制,同時受限於pod內部服務運行所占用的資源。

 

 

 

 

發送請求: kubectl 客戶端指令 ,瀏覽器(可視化方式:rancher,dashboard..)

Master節點: scheduler 調度器 ,負責計算該把pod調度到哪一個node節點

Controllers  控制器 ,負責維護node節點資源對象(deployment,rs,pod)

apiServer : 網關,所有請求都必須要經過網關

etcd: 服務發現,注冊,集群狀態信息,調度信息

node節點: 每一個node節點都運行一個kubelet進程,此進程負責本機服務的pod的創建維護。

Regitry: 鏡像倉庫—阿里鏡像倉庫—harbor構建一套自己的私有倉庫

 

Master節點

 

 

  1.  ApiServer:集群的統一入口,各組件協調者,以HTTP API提供接口服務,所有對象資源的增刪改查和監聽操作都交給 APIServer處理后再交給Etcd存儲
  2. controllers:
    1. replication Controller :

      副本控制器 --- 實現副本數量和預期設定的數量永遠保持一致。

      例如: 構建集群 6台服務器集群  --- k8s部署:預期設定數量=6  k8s能永遠保證副本數據量一致等於6.

    2. Service Controller:

       

      管理維護Service(虛擬IP),提供負載以及服務代理。

    3. EndPoints Controller:

      管理維護Endpoints,關聯Service和Pod

    4. Persistent Volume Controller :

      持久化數據卷控制器

      有狀態服務部署控制器

    5. Daemon Set Controller:

      讓每一個node節點都運行相同的服務

    6. Deployment Controller :

      無狀態服務部署的控制器(項目)

  3. scheduler

    Scheduler就是k8s的調度器。

創建pod的流程:

   

 

 

創建pod的流程:

1kubeclt 發送創建的pod的指令,此時這個指令被apiserver攔截,把創建的pod存儲在etcd

2schduler 發起調用請求,此時這個指令被apiserver攔截,獲取etcd podQueue.NodeList

調度算法:

1)預選調度

2)優選策略

 選擇出一個合適的node節點

3、把選擇合適的node,pod存儲在etcd

4node節點上有一個kubelet進程,發送請求獲取pod,node對應創建資源

5、此時如果kubelet發現pod是本機節點需要創建的,kubelet就開始創建pod

 

node節點

 

 

 

 Pod: k8s管理的最小的基本單元。Pod內部可以運行一個或者多個容器。一般情況下,pod內部只允許一個容器運行,便於管理。

Docker: docker引擎,pod內部運行的都是容器,這個容器是由docker引擎創建的,docker引擎是node節點基礎服務。

Kubelet: node節點代理,kubelet代理master節點請求,在本地node節點執行;

Kube-proxy: 網絡代理 ,主要是用來生成網絡規則,創建訪問路由,創建service網絡訪問規則,負載均衡規則。

Fluentd: 日志,收集日志

 

下一篇我們介紹  架構原理&核心組件原理

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM