创建自定义资源 (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
的自定义资源。
自定义资源示例:
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 示例:
apiVersion: "stable.example.com/v1"
kind: CronTab
metadata:
name: my-new-cron-object
spec:
cronSpec: "* * * * */5"
image: my-awesome-cron-image