什么是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命令查看集群中已定义的资源:从如上输出中可以略窥一二,CRD至少包括如下属性:[]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...
- NAME:CRD的复数名称
- SHORTNAMES:cli中使用的资源简称
- APIGROUP:API所使用的组名称
- NAMESPACED:是否具有namespace属性
- KIND:资源文件需要,用以识别资源
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.ymlapiVersion: apiextensions.k8s.io/v1beta1kind: CustomResourceDefinitionmetadata:# 名称必须符合如下格式:. name: crontabs.staight.k8s.iospec:# 组名,表示使用该API: /apis// group: staight.k8s.io# version列表,表示该CRD支持的版本versions:- name: v1# 开启/关闭该APIserved: true# 有且只能有一个版本要将storage设置为truestorage: true# Namespaced/Cluster,表示该CRD是命令空间属性还是集群属性scope: Namespacednames:# API中使用的名称:/apis// / plural: crontabs# 单数名称,cli中使用singular: crontab# 往往是首字母大写的单数名称,资源文件中需要用到kind: CronTab# cli中的简称shortNames:- ct# 阻止无法识别的字段,集群版本1.15以上才可使用preserveUnknownFields: false# 创建资源文件时需验证的字段validation:openAPIV3Schema:type: objectproperties:spec:type: objectproperties:cronSpec:type: stringimage:type: stringreplicas:type: integer
然后创建该CRD:
[root@node k8s]# kubectl create -f crd-test.ymlcustomresourcedefinition.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的要求,创建它:
[]crontab.staight.k8s.io/new-crontab created
接着即可看到该对象:
[]NAME AGEnew-crontab 28s
小结
- 
			CRD用来自定义资源,是扩展k8s最常用的方式。 
- 
			只创建CRD并没有实际意义,想要CRD工作还需创建控制器,监听资源变动并做出相应动作。 
		审核编辑:汤梓红
	
                        声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
                        举报投诉
                    
                    - 
                                资源
                                +关注关注 0文章 59浏览量 17780
- 
                                CRD
                                +关注关注 0文章 14浏览量 4009
- 
                                kubernetes
                                +关注关注 0文章 223浏览量 8707
原文标题:如何用 Kubernetes 自定义资源?一文聊聊 CRD
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
中断的概念及51单片机的中断系统
中断的概念及51单片机的中断系统13-1. 演示范例——声控小车13-2. 中断的概念13-3. P89V51RD2单片中断系统的构成 
    
                发表于 03-29 10:27        
                    
    
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        
        •2713次阅读            
    
                     
           
        
 
         CRD的概念及使用
CRD的概念及使用 
  
     
     
     
            
             
             
                 
             工商网监
工商网监
        
评论