Kubernetes资源对象:CustomResourceDefinition

CustomResourceDefinition

CustomResourceDefinition(CRD)是 无需改变代码就可以扩展 Kubernetes API 的机制,用来管理自定义对象。

CustomResourceDefinition demo

apiVersion: apiextensions.k8s.io/v1beta1

kind: CustomResourceDefinition

metadata:

  # name must match the spec fields below, and be in the form: .

  name: crontabs.stable.example.com

spec:

  # group name to use for REST API: /apis//

  group: stable.example.com

  # version name to use for REST API: /apis//

  version: v1

  # either Namespaced or Cluster

  scope: Namespaced

  names:

    # plural name to be used in the URL: /apis///

    plural: crontabs

    # singular name to be used as an alias on the CLI and for display

    singular: crontab

    # kind is normally the CamelCased singular type. Your resource manifests use this.

    kind: CronTab

    # shortNames allow shorter string to match your resource on the CLI

    shortNames:

    - ct

crd.metadata.name: 代表crd name, 必须是 {plural}.{group}

crd.spec.group:  代表 group name ,提供给 REST API : /apis/{group}/{version}

crd.spec.version : 代表group version, 提供给 REST API : /apis/{group}/{version}

crd.spec.scope:  有着Namespaced 与 Cluster 两种类型, 代表要创建的第三方资源是从属于namespace 还是全局的

crd.spec.names.plural: 代表复数 name ,提供给REST API : /apis/{group}/{version}/plural

crd.spec.names.singular: 代表单数 name ,用于 kubectl 别名显示

crd.spec.names.kind : 代表资源类型

crd.spec.shortNames[]: 代表缩写,用于kubectl 使用

CRD 的创建,kube-apiserver 会监控到,生成REST API,提供用户创建资源对象,kubectl 也会监控到,纳入命令显示

你可能感兴趣的:(Kubernetes资源对象:CustomResourceDefinition)