【云原生】
Kubernetes CRD
详解(
Custom
Resource Denition
)
一、概述
CRD
(
Custom Resource Definition
)
本身是一种
Kubernetes
内置的资源类型,即
自定义资源的定义,用于描述用户定义的资源是什么样子。
CRD
的相关概念:
CRD
是
v1.7 +
新增的无需改变代码 就可以扩展
Kubernetes API
的机
制,用来管理自定义对象。它实际上是
ThirdPartyResources
(
TPR
)
的升级版本,而
TPR
已经在
v1.8
中删除。
从
Kubernetes
的用户角度来看,所有东西都叫资源
Resource
,就是
Yaml
里的字段
Kind
的内容,例如
Service
、
Deployment
等。
除了常见内置资源之外,
Kubernetes
允许用户自定义资源
Custom
Resource
,而
CRD
表示自定义资源的定义。
当你创建新的
CustomResourceDenition
(
CRD
)时,
Kubernetes
API
服务器会为你所指定的每个版本生成一个新的
RESTful
资源路径。
基于
CRD
对象所创建的自定义资源可以是名字空间作用域的,也可以是
集群作用域的, 取决于
CRD
对象
spec.scope
字段的设置。
定义
CRD
对象的操作会使用你所设定的名字和模式定义(
Schema
)创
建一个新的定制资源,
Kubernetes API
负责为你的定制资源提供存储和
访问服务。
CRD
对象的名称必须是合法的
DNS
子域名。
DNS
子域名
很多资源类型需要可以用作
DNS
子域名的名称。名称必须满足如下规则:
不能超过
253
个字符
只能包含小写字母、数字,以及
'-'
和
'.'
必须以字母数字开头
必须以字母数字结尾
CRD
官方文档:
https://kubernetes.io/zh-cn/docs/tasks/extend-
kubernetes/custom-resources/custom-resource-denitions/
文档被以下合辑收录
评论