91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Kubernetes中如何面向終態設計與控制器

發布時間:2021-10-12 14:16:54 來源:億速云 閱讀:216 作者:柒染 欄目:云計算

這期內容當中小編將會給大家帶來有關Kubernetes中如何面向終態設計與控制器,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

面向終態設計概述整理

  • 概述

    Kubernetes主要是通過ETCD來存儲所有的元數據及感知數據的變化而做相關的動作的。因此,可以認為Kubernetes是圍繞ETCD打造的一套面向終態的編排邏輯的。

    在整個Kubernetes設計理念中,面向終態是其核心理念,通過該設計理念,提升了Kubernetes同其他容器調度平臺的競爭力。

  • 什么才是面向終態的設計

    比如:我這個應用需要10個實例;我要一個VIP;我要一個持久盤;這機器故障時,幫我自動跟換一臺,等等;

    以上這些需求,通過聲明后,提交給系統,系統會自動化的完成這些用戶期望的事情。而這中方式,就是一種面向終態的設計。而Kubernetes的面向終態設計也就和此類似,而暴露給用戶的使用方式就是“聲明式API”。

    用戶通過該類聲明式API,提交相關的期望。Kubernetes就會去解析并保證最終的結果和用戶提交的期望是一致的。

  • 聲明式API

    Kubernetes中這套聲明式的API,主要就是用來控制內部的資源,主要包含如下方法:

    以下為一個Deployment資源,可以通過以上的API進行創建

     apiVersion: apps/v1
    	kind: Deployment
    	metadata:
    	  labels:
    	    app: nginx
    	  name: nginx-test				#以上為資源的元數據
    	spec:
    	  replicas: 1						#期望的狀態,比如這里期望一個副本
    	  selector:
    	    matchLabels:
    	      app: nginx
    	  template:
    	    metadata:
    	      labels:
    	        app: nginx
    	    spec:
    	      containers:
    	      - image: nginx:latest
    	        name: nginx
    	status:
    	  replicas: 1					#Kubernetes實際的狀態


    當以上這個資源通過API被創建后,Kubernetes就會通過內置控制器不斷的嘗試達到用戶期望的終態。

    • Create : 用于創建一個資源對象;

    • Update : 用于對某個資源進行更新,采用樂觀鎖的方式控制版本;

    • Patch : 用于部分更新,該方法并沒有鎖,會直接覆蓋更新,當前提供了幾種方式,如下 * Strategic Patch : 用于K8s的原生資源,不能對CRD資源使用,屬于K8s特有的。 * Json patch:RFC 6902 * Json merge:RFC 7386 * Server side apply * Delete : 刪除對象

    • GET : 通過name對某個namespace下的資源進行查詢

    • List : 給定條件查詢一批對象;

面向終態的核心實現:控制器模式

  • 什么是控制器模式

    通過“List Watch機制” 實現對Kubernetes相關資源變化的關注,而觸發控制器邏輯的處理,完成最終的用戶期望,并通過APIServer更新到ETCD中。而這種方式,則稱為“控制器模式”。Kubernetes很多的組件都是通過這種方式,實現對資源的觀察和處理的,如controller-manager,Kubelet,Scheduler等。

  • 控制器模式下的交互

    整個Kubernetes的組件都是圍繞APIServer進行交互的,除開APIServer組件,其他組件一般都不會直接交互。

整體架構如下:

Kubernetes中如何面向終態設計與控制器

用戶通過kubectl提交一個資源給Kubernetes APIServer,然后APIServer存儲到ETCD中,此時其他組件關注自己感興趣的資源,進行監聽,并作出反應。

例如: 用戶提交了一個Deployment資源,期望部署3個實例。那么此時Kubernetes的APIServer會把該數據存儲到ETCD中,而此時調度器通過List Watch機制監聽到沒有被調度到的Pod進行調度。當標記了該資源內的Pod要調度到那一臺機器上后,另一個組件kubelet也會通過List Watch機制,進行最終的部署,實現終態,完成用戶期望的3個實例的部署。

上述就是小編為大家分享的Kubernetes中如何面向終態設計與控制器了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

高雄市| 义马市| 广灵县| 兴仁县| 阿克陶县| 噶尔县| 迭部县| 威宁| 时尚| 靖江市| 定襄县| 嘉峪关市| 抚松县| 镇原县| 东丽区| 长乐市| 禹城市| 吴旗县| 平顶山市| 宁安市| 蒙自县| 大埔区| 泾川县| 永昌县| 德保县| 云安县| 金溪县| 五大连池市| 安泽县| 蒲城县| 双流县| 宁德市| 新源县| 万年县| 精河县| 巴塘县| 玉环县| 望都县| 内黄县| 哈密市| 长春市|