更新时间:2022-09-16 GMT+08:00
分享

CRD典型格式

以v1版本为例:

apiVersion: apiextensions.k8s.io/v1
# 创建 CRD
kind: CustomResourceDefinition
metadata:
  # 名称必须采用复数 <plural-name>.<group>.<domain> 格式
  name: memcacheds.osc.huawei.com
spec:
  group: osc.huawei.com
  names:
    # 可创建的对象类型
    kind: Memcached
    listKind: MemcachedList
    # 复数名称
    plural: memcacheds
    # CLI 别名, 显示的单数名称
    singular: memcached
    # CLI 中使用的简称
    shortNames:
    - mc
  # 可用范围: Namespaced or Cluster
  scope: Namespaced
  version: v1
  # 可定义多个版本
  versions:
  - name: v1alpha1
    served: false  # 需要卸载该版本时,先标记为 non-serving
    storage: false  # 再将 storage 设置到可用的版本
  - name: v1
    served: true
    storage: true
  # 基于 openAPIV3Schema 的校验规则
  validation:
    openAPIV3Schema:
      description: Memcached is the Schema for the Memcacheds API
      properties:
        # ...
      type: object

在Kubernetes中创建CRD时,将自动创建其对应的Kubernetes API,为RESTful endpoint形式,在namespace或cluster范围内可以访问其进行CRUD操作。

其格式如下:

/apis/<spec:group>/<spec:version>/<scope>/*/<names-plural>/...

示例:

/apis/osc.huawei.com/v1/namespaces/*/memcacheds/...

*代表所有namespace,可以使用指定namespace名称查询特定namespace下的CR。

相关文档