创建自定义资源 (CRD)¶
在 Kubernetes 中一切对象都被抽象为资源,如 Pod、Deployment、Service、Volume 等是 Kubernetes 提供的默认资源, 这为我们的日常运维和管理工作提供了重要支撑,但是在一些特殊的场景中,现有的预置资源并不能满足业务的需要, 因此我们希望去扩展 Kubernetes API 的能力,自定义资源(CustomResourceDefinition, CRD)正是基于这样的需求应运而生。
容器管理模块支持对自定义资源的界面化管理,主要功能如下:
- 获取集群下自定义资源列表和详细信息
- 基于 YAML 创建自定资源
- 基于 YAML 创建自定义资源示例 CR(Custom Resource)
- 删除自定义资源
前提条件¶
- 
容器管理模块已接入 Kubernetes 集群或者已创建 Kubernetes,且能够访问集群的 UI 界面 
- 
已完成一个命名空间的创建、用户的创建,并将用户授权为 Cluster Admin 角色 ,详情可参考集群和命名空间授权 
通过 YAML 创建自定义资源¶
- 
点击一个集群名称,进入 集群详情 。  
- 
在左侧导航栏,点击 自定义资源 ,点击右上角 YAML 创建 按钮。  
- 
在 YAML 创建 页面中,填写 YAML 语句后,点击 确定 。  
- 
返回自定义资源列表页,即可查看刚刚创建的名为 crontabs.stable.example.com的自定义资源。 
自定义资源示例:
CRD example
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: crontabs.stable.example.com
spec:
  group: stable.example.com
  versions:
    - name: v1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              properties:
                cronSpec:
                  type: string
                image:
                  type: string
                replicas:
                  type: integer
  scope: Namespaced
  names:
    plural: crontabs
    singular: crontab
    kind: CronTab
    shortNames:
    - ct
通过 YAML 创建自定义资源示例¶
- 
点击一个集群名称,进入 集群详情 。  
- 
在左侧导航栏,点击 自定义资源 ,进入自定义资源列表页面。  
- 
点击名为 crontabs.stable.example.com的自定义资源,进入详情,点击右上角 YAML 创建 按钮。 
- 
在 YAML 创建 页面中,填写 YAML 语句后,点击 确定 。  
- 
返回 crontabs.stable.example.com的详情页面,即可查看刚刚创建的名为 my-new-cron-object 的自定义资源。
CR 示例:
CR example
apiVersion: "stable.example.com/v1"
kind: CronTab
metadata:
  name: my-new-cron-object
spec:
  cronSpec: "* * * * */5"
  image: my-awesome-cron-image