Kubernetes 支持使用自定义资源定义(CustomResourceDefinition,CRD) 扩展 Kubernetes API,并基于 CRD 创建自定义资源(CR)。
说明
创建 CRD 的 Yaml 测试示例如下,具体参数和配置以实际使用场景为准。
apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: crontabs.stable.example.com # 名称必须与 spec 字段匹配,格式为:<名称的复数形式>.<组名>。 spec: group: stable.example.com # 组名称,用于 REST API: /apis/<组>/<版本>。 versions: # 版本,列举此 CustomResourceDefinition 所支持的版本。 - name: v1 # 版本名称,用于 REST API: /apis/<组>/<版本>。 served: true # 版本启用状态,通过 served 独立标志每个版本启用还是禁止。 storage: true # 是否为存储版本,要求其中一个且只有一个版本必须被标记为存储版本。 schema: openAPIV3Schema: type: object properties: spec: type: object properties: cronSpec: type: string image: type: string replicas: type: integer scope: Namespaced # 资源级别,Namespaced 表示命名空间级别,Cluster 表示集群级别。 names: plural: crontabs # 名称的复数形式,用于 URL:/apis/<组>/<版本>/<名称的复数形式>。 singular: crontab # 名称的单数形式,作为命令行使用时和显示时的别名。 kind: CronTab # kind 通常是单数形式的帕斯卡编码(PascalCased)形式,用于资源清单使用。 shortNames: # shortNames 允许在命令行使用较短的字符串来匹配资源。 - ct
说明
创建 CR 的 Yaml 测试示例如下,具体参数和配置以实际使用场景为准。
apiVersion: stable.example.com/v1 # CDR 中定义的组名称和版本名称的组合,格式为:<组名称>/<版本名称>。 kind: CronTab # CRD 中定义的 kind。 metadata: name: crontab-mlt spec: cronSpec: "* * * * */5" image: my-awesome-cron-image
...
,管理自定义资源。参数 | 描述 |
---|---|
编辑 Yaml | 通过修改 Yaml 内容,修改自定义资源配置。 |
删除 | 删除所选自定义资源。 |