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

K8S | 核心原理分析,你學到了什么?

云計算 云原生
Docker:作為開源的應用容器引擎,可以把應用程序和其相關依賴打包生成一個Image鏡像文件,是一個標準的運行環境,提供可持續交付的能力。

一、背景

基于分布式的架構中,需要管理的服務是非常多的,無論是服務的數量還是體系劃分;

從服務的能力上看,可以進行分層管控,只是其中有相當一部分服務層,改動更新的頻率很低,所以感知也不明顯;

圖片

就以自己當下參與研發的系統來說;

通過K8S進行管理的服務近百個,這中間有部分服務采用集群模式,即便是這個規模的系統,也幾乎不可能依賴純人工運維的形式,自動化流程必不可少;

二、持續集成

此前圍繞該主題寫過一個完整的實踐案例,主要圍繞Jenkins、Docker、K8S等組件的使用層面,總結源碼編譯、打包、鏡像構建、部署等自動化管理的流程;

圖片

Jenkins:是一個擴展性非常強的軟件,用于自動化各種任務,包括構建、測試和部署等;

Docker:作為開源的應用容器引擎,可以把應用程序和其相關依賴打包生成一個Image鏡像文件,是一個標準的運行環境,提供可持續交付的能力;

Kubernetes:作為開源的容器編排引擎,用來對容器化應用進行自動化部署、 擴縮和管理;

三、K8S架構

1、核心組件

圖片

Control-Plane-Components:控制平面組件

對集群做出全局決策,例如:資源調度、檢測、事件響應,可以在集群中的任何節點上運行;

  • api:開放K8S的API,組件之間通過API交互,相當于控制面的前端;
  • controllermanager:運行控制器進程,邏輯上是一個單獨的進程;
  • scheduler:監聽新建未指定運行節點的Pods,并為Pod選擇運行節點;
  • etcd:兼具一致性和高可用性的鍵值數據庫,作為保存K8S數據的后臺庫;

Node:節點組件

該組件會在每個節點上運行,負責維護運行的Pod并提供Kubernetes運行環境;

  • kubelet:在每個節點上運行的代理,保證容器都運行在Pod中;
  • kube-proxy:每個節點上運行的網絡代理, 維護節點上的網絡規則;

Container-Runtime:容器運行時

負責運行容器的軟件,支持Docker、containerd、CRI-O等多個容器運行環境,以及任何實現Kubernetes-CRI容器運行環境接口;

2、分層結構

從整體的功能上來考慮,K8S集群可以分為:用戶、控制平面、節點三個模塊;

圖片

用戶側:不論是CLI命令行還是UI界面,會與控制面板的APIserver進行交互,APIserver再與其他組件交互,最終執行相應的操作命令;

控制平面:以前也稱為Master,核心組件包括APIserver、controller、scheduler、etcd,主要用來調度整個集群,以及做出全局決策;

節點:通過將容器放入在節點上運行的Pod中來執行工作負載,簡單的理解工作負載就是各種應用程序等,節點上的核心組件包括Pod、kubelet、Container-Runtime、kube-proxy等;

3、核心能力

站在研發的視角來看,K8S提供極其強大的應用服務管理能力;

3.1 發現與負載

服務Service可以將運行在一個或一組Pod上的網絡應用程序公開為網絡服務的方法,通常使用標簽對資源對象進行篩選過濾;

圖片

3.2 調度

調度器通過監測機制來發現集群中新創建且尚未被調度到節點上的Pod,由于Pod中的容器和Pod本身可能有不同的資源要求,調度會將Pod放置到合適的節點上;

圖片

3.3 自動伸縮

K8S可以通過指標檢查工作負載的資源需求,例如CPU利用率、響應時長、內存利用率、或者其他,從而判斷是否需要執行伸縮,垂直維度可以是更多的資源分配,水平維度可以是更多的集群部署;

圖片

K8S可以自動伸縮,也具備自動修復的能力,當節點故障或者應用服務異常時,會被檢查到,可能會進行節點遷移或者重啟;

四、應用案例

1、服務部署

在此前的實踐案例中,用CLI命令行和腳本文件的方式,完成的部署動作,而在整個流程中涉及集群的多個組件協作,多次的通信和調度;

kubectl create -f pod.yaml

圖片

2、交互流程

圖片

【1】CLI命令行和UI界面,都是通過APIserver接口,與集群內部組件交互,比如上述的Pod部署操作;

【2】在APIserver收到請求之后,會將序列化狀態的對象寫入到etcd中完成存儲操作;

【3】Scheduler調度器通過監測(Watch)機制來發現集群中新創建且尚未被調度到節點上的Pod;

【4】在集群中找到一個Pod的所有可調度節點,對這些可調度節點打分,選出其中得分最高的節點來運行Pod,然后調度器將這個調度決定通知給APIserver;

【5】APIserver完成信息存儲后,然后通知相應節點的Kubelet;

【6】Kubelet是基于PodSpec來工作的,確保這些PodSpec中描述的容器處于運行狀態且運行狀況良好,每個PodSpec是一個描述Pod的YAML或JSON對象;

【7】Pod是可以在Kubernetes中創建和管理的、最小的可部署的計算單元,包括一個或多個容器;

五、參考源碼

文檔倉庫:
https://gitee.com/cicadasmile/butte-java-note

腳本倉庫:
https://gitee.com/cicadasmile/butte-auto-parent


責任編輯:武曉燕 來源: 知了一笑
相關推薦

2024-04-12 08:54:13

從庫數據庫應用

2023-10-16 08:55:43

Redisson分布式

2023-04-10 07:40:36

GraphQLRest通信模式

2024-11-13 09:22:40

2023-06-03 00:05:18

TypeScriptJSDoc掃描器

2022-07-19 08:04:04

HTTP應用層協議

2022-04-22 13:32:01

K8s容器引擎架構

2025-02-27 08:09:52

2023-06-30 07:30:38

2024-07-31 09:28:56

2024-10-18 11:48:00

2024-08-12 15:44:06

2025-02-28 00:03:00

2022-02-11 23:11:09

Kubernetes集群容器化

2023-04-26 22:52:19

視覺人臉檢測人臉對齊

2021-03-09 09:55:02

Vuejs前端代碼

2020-11-10 07:05:41

DockerK8S云計算

2023-09-11 15:35:25

2022-08-29 08:21:00

k8sDocker

2022-11-02 10:21:41

K8s pod運維
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 二区中文 | 亚洲深夜福利 | 日韩欧美网 | 黄色一级电影在线观看 | 精品一区二区在线观看 | 欧美日韩亚洲一区 | 国产成人精品一区二区三区 | 狠狠av| 人和拘一级毛片c | 国产欧美精品区一区二区三区 | 不卡一区二区三区四区 | 国产成人小视频 | 97av在线 | 伊人久久在线观看 | 国外成人在线视频 | 美女天天操 | 国产精品毛片一区二区三区 | 久久精品亚洲欧美日韩精品中文字幕 | 国产精品久久久久久久久久 | 国产精品成人在线播放 | 亚洲精品亚洲人成人网 | 国产精品海角社区在线观看 | 国产精品毛片 | 日韩免费视频一区二区 | 色精品视频 | 91精品成人久久 | 国产一区中文 | 亚洲一区二区三区在线免费观看 | www国产亚洲精品 | 欧美成人精品在线 | 色综合久久天天综合网 | 夜夜操av | 欧美一区二区三区,视频 | 一区二区三区视频在线观看 | 国内毛片毛片毛片毛片 | 国产精品免费一区二区三区四区 | 性色的免费视频 | 亚洲午夜视频 | 国产成人99久久亚洲综合精品 | 国产性色视频 | 国产精品一区二区久久精品爱微奶 |