k8s api对象,CRD
在Kubernetes项目中,一个API对象在Etcd里的完整资源路径,是由:Group(API组)、Version(API版本)和Resource(API资源类型)三个部分组成
apiVersion: batch/v2alpha1
kind: CronJob
在这个YAML文件中,“CronJob”就是这个API对象的资源类型(Resource),“batch”就是它的组(Group),v2alpha1就是它的版本(Version)。
CRD的全称是Custom Resource Definition。顾名思义,它指的就是,允许用户在Kubernetes中添加一个跟Pod、Node类似的、新的API资源类型,即:自定义API资源。
YAML文件,就是一个具体的“自定义API资源”实例,也叫CR(Custom Resource)
如何定义CRD
使用k8s的规范来定义,需要编写代码。
Kubernetes提供的代码生成工具,为上面定义的Network资源类型自动生成clientset、informer和lister。其中,clientset就是操作Network对象所需要使用的客户端,而informer和lister这两个包的主要功能
代码生成工具名叫k8s.io/code-generator