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

如何用 Kubernetes 自定義資源?一文聊聊 CRD

系統 Linux
CRD的全稱為 CustomResourceDefinitions,即自定義資源。k8s擁有一些內置的資源,比如說Pod,Deployment,ReplicaSet等等,而CRD則提供了一種方式,使用戶可以自定義新的資源,以擴展k8s的功能。

什么是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 KIND
configmaps cm true ConfigMap
endpoints ep true Endpoints
events ev true Event
namespaces ns false Namespace
persistentvolumes pv false PersistentVolume
pods po true Pod
podtemplates true PodTemplate
storageclasses sc storage.k8s.io false StorageClass
...

從如上輸出中可以略窺一二,CRD至少包括如下屬性:

  • NAME:CRD的復數名稱
  • SHORTNAMES:cli中使用的資源簡稱
  • APIGROUP:API所使用的組名稱
  • NAMESPACED:是否具有namespace屬性
  • KIND:資源文件需要,用以識別資源?

另外,CRD提供了定義資源的方式,不過想要讓其具有實際意義還需控制器的配合。k8s的??kube-controller-manager??組件提供了多種內置控制器,比如說:??cronjob????daemonset????deployment????namespace??等等,它們監聽資源的創建/更新/刪除,且做出相應的動作。而對于CRD來說,也可以編寫相應的控制器來完成對應的功能。

CRD使用

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

創建CRD

CRD資源文件示例:

# crd-test.yml
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
# 名稱必須符合如下格式:<plural>.<group>
name: crontabs.staight.k8s.io
spec:
# 組名,表示使用該API: /apis/<group>/<version>
group: staight.k8s.io
# version列表,表示該CRD支持的版本
versions:
- name: v1
# 開啟/關閉該API
served: true
# 有且只能有一個版本要將storage設置為true
storage: true
# Namespaced/Cluster,表示該CRD是命令空間屬性還是集群屬性
scope: Namespaced
names:
# API中使用的名稱:/apis/<group>/<version>/<plural>
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.io
NAME CREATED AT
crontabs.staight.k8s.io 2019-10-08T10:21:09Z

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

創建自定義對象

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

# crontab.yml
apiVersion: "staight.k8s.io/v1"
kind: CronTab
metadata:
name: new-crontab
spec:
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 crontab
NAME AGE
new-crontab 28s

小結

  • CRD用來自定義資源,是擴展k8s最常用的方式。
  • 只創建CRD并沒有實際意義,想要CRD工作還需創建控制器,監聽資源變動并做出相應動作。
責任編輯:龐桂玉 來源: 馬哥Linux運維
相關推薦

2023-01-03 07:40:27

自定義滑塊組件

2024-06-03 10:00:51

Vue 3語法插槽

2025-01-03 17:07:23

2021-02-22 09:44:03

KubernetesDNSLinux

2021-11-23 15:06:42

Kubernetes 運維開源

2020-11-30 12:32:40

PyTorch語義分割python

2019-07-21 09:17:11

數據緩存架構

2023-06-13 10:08:21

汽車設計

2023-12-26 07:40:34

2022-08-09 09:10:43

Kubernetes容器

2024-01-03 08:54:17

Kubernetes策略工具

2024-05-22 09:45:49

2022-05-12 08:01:18

KubernetesDocker容器

2024-08-09 09:02:56

2023-05-04 08:24:52

ChatGPT產品經理工業革命

2024-03-25 08:18:31

2022-08-08 13:12:04

自動駕駛決策

2022-09-25 17:23:50

駕駛輔助

2024-01-01 21:57:41

kubernetesCRDOperator

2023-09-22 10:45:47

云原生云計算
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男人的天堂久久 | 激情视频中文字幕 | 国产精品久久久久久久久久久新郎 | 男女免费在线观看视频 | 日韩欧美精品 | 久久久久久成人 | 伊人精品视频 | 免费亚洲成人 | 亚洲精品电影网在线观看 | 在线观看久草 | 狠狠亚洲| 欧美日日 | 一区二区三区视频免费观看 | 国产精品久久久久久av公交车 | 亚洲网站在线播放 | 日本一区二区不卡 | 亚洲国产成人在线 | 成人免费日韩 | 久久久国产一区二区三区四区小说 | 欧美一区二区三区在线免费观看 | 午夜影院黄 | 国产成人aⅴ | 老牛嫩草一区二区三区av | 视频一区在线观看 | 亚洲三区视频 | 亚洲精品一区二区三区蜜桃久 | 国产一区二区在线免费观看 | 国产一级在线 | 天天久久| 亚洲精品中文字幕在线观看 | 久久久久国 | 欧美精品在线一区 | 国产在线观看一区二区 | 日韩中文字幕在线观看 | 久久lu| 亚洲视频在线播放 | 永久精品| 欧美在线一区二区三区 | 久久久国产一区二区三区 | 精品一区二区三区视频在线观看 | 中文字幕高清免费日韩视频在线 |