跳转至

创建自定义资源 (CRD)

在 Kubernetes 中一切对象都被抽象为资源,如 Pod、Deployment、Service、Volume 等是 Kubernetes 提供的默认资源, 这为我们的日常运维和管理工作提供了重要支撑,但是在一些特殊的场景中,现有的预置资源并不能满足业务的需要, 因此我们希望去扩展 Kubernetes API 的能力,自定义资源(CustomResourceDefinition, CRD)正是基于这样的需求应运而生。

容器管理平台支持对自定义资源的界面化管理,主要功能如下:

  • 获取集群下自定义资源列表和详细信息
  • 基于 YAML 创建自定资源
  • 基于 YAML 创建自定义资源示例 CR(Custom Resource)
  • 删除自定义资源

前提条件

通过 YAML 创建自定义资源

  1. 点击一个集群名称,进入集群详情

    crd

  2. 在左侧导航栏,点击自定义资源,点击右上角 YAML创建按钮。

    crd

  3. YAML 创建页面中,填写 YAML 语句后,点击确定

    crd

  4. 返回自定义资源列表页,即可查看刚刚创建的名为 crontabs.stable.example.com 的自定义资源。

    crd

自定义资源示例:

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 创建自定义资源示例

  1. 点击一个集群名称,进入集群详情

    crd

  2. 在左侧导航栏,点击自定义资源,点击右上角 YAML创建按钮。

    crd

  3. 点击名为 crontabs.stable.example.com的自定义资源,进入详情,点击右上角 YAML 创建按钮。

    crd

  4. YAML 创建页面中,填写 YAML 语句后,点击确定

    crd

  5. 返回 crontabs.stable.example.com 的详情页面,即可查看刚刚创建的名为 my-new-cron-object 的自定义资源。

CR 示例:

apiVersion: "stable.example.com/v1"
kind: CronTab
metadata:
  name: my-new-cron-object
spec:
  cronSpec: "* * * * */5"
  image: my-awesome-cron-image

评论