日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

k8s CRD相关

發(fā)布時間:2025/3/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 k8s CRD相关 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、CRD的意義
????????Kubernetes 1.7之后,提供了CRD(CustomResourceDefinitions)自定義資源的二次開發(fā)能力來擴展kubernetes API,通過此擴展可以向kubernetes API中增加新的資源類型,會比修改kubernetes apiserver的源代碼或創(chuàng)建自定義的apiserver來的更加的簡潔和容易,


2、在k8s上創(chuàng)建資源的過程
????????用戶創(chuàng)建一個資源,實際上是把k8s抽象的資源根據(jù)資源清單(yaml文件)做實例化。具體過程如下:
????????(1)用戶的資源請求發(fā)送給apiserver,通過apiserver的認證、授權、準入控制以后,通過apiserver把對應的資源定義信息存放在etcd中;
????????(2)對應資源類型的控制器一般被稱為 controller或operator,controller通過watch機制監(jiān)聽apiserver上的資源變動,通過對應資源變動事件觸發(fā)對應類型資源的控制器從etcd中讀取對應資源的定義,并將對應資源創(chuàng)建出來,并通過控制器內(nèi)部的和解循環(huán)(control loop)監(jiān)控著對應資源狀態(tài)是否和用戶定義的期望狀態(tài)一樣;如果發(fā)現(xiàn)不一樣,內(nèi)部和解循環(huán)就會被觸發(fā),對應的控制器會向apiserver發(fā)起創(chuàng)建資源的請求,將對應資源重建,讓對應資源的狀態(tài)始終滿足用戶期望的狀態(tài)。
????????對于etcd來說,它是就一個kv數(shù)據(jù)庫,可以存儲任意類型的kv數(shù)據(jù),但在k8s上,apiserver將不同類型的資源定義抽象成不同的資源,使得用戶創(chuàng)建對應資源必須是滿足對應類型資源定義的規(guī)范,然后將資源定義存放在etcd中。簡單講就是存入etcd中的數(shù)據(jù)必須是滿足對應apiserver接口定義的規(guī)范。


3、k8s擴展資源類型的方式
????????在k8s上擴展資源類型的方式有三種:

????????第一種是CRD,crd是k8s內(nèi)置的資源類型,通過crd資源可以將用戶自定義資源類型轉(zhuǎn)換為k8s上資源類型;
????????第二種是自定義apiserver,這種方式是復用 Kubernetes 的一些特性的同時,自由度最高的方式。可以自定義存儲等,同時保有一定程度的公共特性。Cloud TiDB 的實現(xiàn)就是通過自定義 API server 進行的;
????????第三種方式就是修改現(xiàn)有k8s apiserver的源碼,讓其支持對應用戶自定義資源類型;

????????另外,進行自定義資源類型,只能把對應資源類型的定義信息寫入到etcd中,不能讓對應自定義類型資源實例化為一個自定義資源對象,它不能真正的跑起來,要想真正的跑起來,我們還需要一個自定義控制器,將對應資源實例化為k8s上的資源對象,并專門負責監(jiān)聽對應的資源類型的資源變化。
????????因此需要(1)自定義資源類型CRD;+(2)對應自定義資源類型的控制器controller;
????????controller的作用是通過API Server提供的接口實時的對指定的resource進行監(jiān)聽和執(zhí)行的動作(watch,diff,action)。


備注:
k8s api = k8s資源 = pod、service、PV等
5種控制器類型:Deployment;StatefulSet;DaemonSet;Job;CronJob


crd和operator的區(qū)別:
所有的Operator都是基于Controller模式,Operator是使用CRD實現(xiàn)的定制化的Controller. 它與內(nèi)置K8S Controller遵循同樣的運行模式(比如 watch, diff, action);operator的邏輯也是創(chuàng)建一個crd資源,再創(chuàng)建一個控制器。

即Kubernetes CRD Operator = kubernetes CRD+ custom controller


?

總結

以上是生活随笔為你收集整理的k8s CRD相关的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。