女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CRD的概念及使用

馬哥Linux運維 ? 來源:staight.github.io ? 作者:staight.github.io ? 2022-09-07 09:49 ? 次閱讀

什么是CRD

CRD的全稱為 CustomResourceDefinitions,即自定義資源。k8s擁有一些內置的資源,比如說Pod,Deployment,ReplicaSet等等,而CRD則提供了一種方式,使用戶可以自定義新的資源,以擴展k8s的功能。使用CRD可以在不修改k8s源代碼的基礎上方便的擴展k8s的功能,比如騰訊云TKE使用CRD:logcollectors.ccs.cloud.tencent.com以添加日志收集服務,而Istio也大量使用到了CRD。值得一提的是,另一種擴展k8s的方式是apiservice,通過API:metrics.k8s.io自定義HPA是其最典型的應用。可以使用kubectl api-resources命令查看集群中已定義的資源:

	
[root@node k8s]# kubectl api-resources NAME                              SHORTNAMES   APIGROUP                       NAMESPACED   KINDconfigmaps                        cm                                          true         ConfigMapendpoints                         ep                                          true         Endpointsevents                            ev                                          true         Eventnamespaces                        ns                                          false        Namespacepersistentvolumes                 pv                                          false        PersistentVolumepods                              po                                          true         Podpodtemplates                                                                  true         PodTemplatestorageclasses                    sc           storage.k8s.io                 false        StorageClass...
從如上輸出中可以略窺一二,CRD至少包括如下屬性:
  • NAME:CRD的復數名稱
  • SHORTNAMES:cli中使用的資源簡稱
  • APIGROUP:API所使用的組名稱
  • NAMESPACED:是否具有namespace屬性
  • KIND:資源文件需要,用以識別資源
另外,CRD提供了定義資源的方式,不過想要讓其具有實際意義還需控制器的配合。k8s的kube-controller-manager組件提供了多種內置控制器,比如說:cronjobdaemonsetdeploymentnamespace等等,它們監聽資源的創建/更新/刪除,且做出相應的動作。而對于CRD來說,也可以編寫相應的控制器來完成對應的功能。

CRD使用

在k8s中CRD本身也是資源,大于1.7.0版本的集群可以使用apiextensions.k8s.io/v1beta1API訪問CRD,大于1.16.0版本則可以使用apiextensions.k8s.io/v1API

創建CRD

CRD資源文件示例:


	
# crd-test.ymlapiVersion: apiextensions.k8s.io/v1beta1kind: CustomResourceDefinitionmetadata:  # 名稱必須符合如下格式:.  name: crontabs.staight.k8s.iospec:  # 組名,表示使用該API: /apis//  group: staight.k8s.io  # version列表,表示該CRD支持的版本  versions:    - name: v1      # 開啟/關閉該API      served: true      # 有且只能有一個版本要將storage設置為true      storage: true  # Namespaced/Cluster,表示該CRD是命令空間屬性還是集群屬性  scope: Namespaced  names:    # API中使用的名稱:/apis///    plural: crontabs    # 單數名稱,cli中使用    singular: crontab    # 往往是首字母大寫的單數名稱,資源文件中需要用到    kind: CronTab    # cli中的簡稱    shortNames:    - ct  # 阻止無法識別的字段,集群版本1.15以上才可使用  preserveUnknownFields: false  # 創建資源文件時需驗證的字段  validation:    openAPIV3Schema:      type: object      properties:        spec:          type: object          properties:            cronSpec:              type: string            image:              type: string            replicas:              type: integer

然后創建該CRD:


	
[root@node k8s]# kubectl create -f crd-test.yml customresourcedefinition.apiextensions.k8s.io/crontabs.staight.k8s.io created

接著就能查到該CRD:


	
[root@node k8s]# kubectl get crd crontabs.staight.k8s.ioNAME                      CREATED ATcrontabs.staight.k8s.io   2019-10-08T1009Z

CRD創建完成。可以通過URL:https://169.254.128.15:60002/apis/staight.k8s.io/v1/namespaces/default/crontabs訪問到crontab資源。

創建自定義對象

在創建CRD之后,即可創建其資源的對象了。資源文件示例:

	
# crontab.ymlapiVersion: "staight.k8s.io/v1"kind: CronTabmetadata:  name: new-crontabspec:  cronSpec: "* * * * *"  image: new-image

注意spec中的字段應符合CRD的要求,創建它:


	
[root@node k8s]# kubectl create -f crontab.yml crontab.staight.k8s.io/new-crontab created

接著即可看到該對象:


	
[root@node k8s]# kubectl get crontabNAME          AGEnew-crontab   28s

小結

  • CRD用來自定義資源,是擴展k8s最常用的方式。

  • 只創建CRD并沒有實際意義,想要CRD工作還需創建控制器,監聽資源變動并做出相應動作。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 資源
    +關注

    關注

    0

    文章

    59

    瀏覽量

    18119
  • CRD
    CRD
    +關注

    關注

    0

    文章

    14

    瀏覽量

    4118
  • kubernetes
    +關注

    關注

    0

    文章

    239

    瀏覽量

    8970

原文標題:如何用 Kubernetes 自定義資源?一文聊聊 CRD

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Allegro正負片的概念及相關設置說明

     Allegro正負片的概念及相關設置說明
    發表于 05-12 21:22

    中斷的概念及51單片機的中斷系統

    中斷的概念及51單片機的中斷系統13-1. 演示范例——聲控小車13-2. 中斷的概念13-3. P89V51RD2單片中斷系統的構成 
    發表于 03-29 10:27

    FPGA與CPLD的概念及其區別PDF

    FPGA與CPLD的概念及其區別
    發表于 08-15 15:46

    串口通訊的概念及接口電路解析,不看肯定后悔

    串口通訊的概念及接口電路解析,不看肯定后悔
    發表于 05-27 06:01

    USB基本概念及從機編程方法介紹

    慕課蘇州大學.嵌入式開發及應用.第四章.較復雜通信模塊.USB基本概念及從機編程方法0 目錄4 較復雜通信模塊4.4 USB基本概念及從機編程方法4.4.1 課堂重點4.4.2 測試與作業5 下一
    發表于 11-08 09:14

    嵌入式系統的概念及特點

    文章目錄嵌入式系統概要嵌入式系統的概念及特點嵌入式系統硬件嵌入式系統軟件嵌入式系統的編程模式微控制器的程序開發方式嵌入式系統概要嵌入式系統的概念及特點1. 概念國外的定義:用于控制、監視或者輔助操作
    發表于 12-22 06:36

    嵌入式系統的概念及特點

    嵌入式系統概要嵌入式系統概要1.嵌入式系統的概念及特點2.嵌入式硬件3.嵌入式系統軟件4.嵌入式系統編程模式5.微控制器的程序開發方式嵌入式系統概要1.嵌入式系統的概念及特點2.嵌入式硬件3.嵌入式系統軟件4.嵌入式系統編程模式5.微控制器的程序開發方式...
    發表于 12-22 07:21

    相位噪聲和抖動的概念及其估算方法

    相位噪聲和抖動的概念及其估算方法 時鐘頻率的不斷提高使相位噪聲和抖動在系統時序上占據日益重要的位置。本文介其概念及其對系統性能的影
    發表于 12-27 13:30 ?2922次閱讀
    相位噪聲和抖動的<b class='flag-5'>概念及</b>其估算方法

    地和接地的概念及區別

    地和接地的概念及區別 1.地 (1)電氣地 大地是一個電阻非常低、電容量非常大的物體,擁有吸收無限電荷的
    發表于 12-31 11:09 ?3713次閱讀

    基于RF射頻知識基本概念及DTD無線產品介紹

    基于RF射頻知識基本概念及DTD無線產品介紹
    發表于 10-25 08:38 ?8次下載
    基于RF射頻知識基本<b class='flag-5'>概念及</b>DTD無線產品介紹

    移動基站天線有關概念及選型原則

    移動基站天線有關概念及選型原則概述。
    發表于 06-16 09:48 ?16次下載

    智能電網的概念及通信技術詳解

    智能電網的概念及通信技術詳解
    發表于 11-21 20:41 ?1468次閱讀

    工業網絡通信新概念及FLEX產品介紹

    工業網絡通信新概念及FLEX產品介紹
    的頭像 發表于 03-08 10:57 ?2558次閱讀
    工業網絡通信新<b class='flag-5'>概念及</b>FLEX產品介紹

    S參數的概念及應用

    電子發燒友網站提供《S參數的概念及應用.pdf》資料免費下載
    發表于 08-12 14:29 ?0次下載

    諧波的概念及應用

    本文簡單介紹了諧波的概念及應用。
    的頭像 發表于 10-18 14:14 ?1149次閱讀
    諧波的<b class='flag-5'>概念及</b>應用