开发者社区> 问答> 正文

什么是CRD?

已解决

什么是CRD?

展开
收起
詹姆斯邦德00 2022-10-19 17:06:50 686 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    如果K8S 中的自带资源类型不足以满足业务需求,需要定制开发资源怎么办?自定义资源(Custom Resource)由此产生。那么,如何让Kubernetes 认识这些自定义的资源呢?CRD(Custom Resource Definition)就承担了一个说明书的角色,让Kubernetes 来认识这个自定义资源CR。

    那么CRD 是怎么来的呢?最早是谷歌提出Third Party Resource 的概念,希望开发者以插件化形式扩展K8s API 对象模型,以增强整个k8s 的生态。基于Third Party Resource 这一概念,Kubernetes 社区在1.7 版本中提出了CRD 的概念。

    随便打开一个CRD 的YAML 可以看到,其主体部分是使用OpenAPI v3 schema 来描述CR 的字段结构,类似编程语言中的强类型声明。

    image.png

    有了CRD 之后,我们可以自由地增加各种内置资源平级的资源,原本很多之前只维护在软件内部的元数据,也可以被写入到k8s 集群中。这极大地拓宽了我们的想象力,什么交换机、作业、路由等各种关联的资源都一股脑地放进集群里面去。

    在各种自定义资源被放进去之后,就会有人问,这放进去是挺方便的,但是放进去就会生效吗?是的,资源的生效就是Operator 的功劳。

    以上内容摘自《SREWorks 云原生数智运维工程实践》电子书,点击https://developer.aliyun.com/ebook/download/7784可下载完整版。

    2022-10-19 17:46:30
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
Autoscaling 立即下载
Kubernetes Helm 立即下载
Kubernetes日志采集与分析 立即下载