apiVersion: "stable.example.com/v1" (1)
kind: CronTab (2)
metadata:
name: my-new-cron-object (3)
finalizers: (4)
- finalizer.stable.example.com
spec: (5)
cronSpec: "* * * * /5"
image: my-awesome-cron-image
本指南介绍开发人员如何管理来自自定义资源定义 (CRD) 的自定义资源 (CR)。
在 Kubernetes API 中,资源是指存储特定种类 API 对象集合的端点。例如,内置的Pods
资源包含Pod
对象的集合。
自定义资源定义 (CRD) 对象定义了集群中一种新的、唯一的对象类型(称为种类),并允许 Kubernetes API 服务器处理其整个生命周期。
自定义资源 (CR) 对象是由集群管理员添加到集群的 CRD 创建的,允许所有集群用户将新的资源类型添加到项目中。
特别是,操作员通过将 CRD 与任何必需的 RBAC 策略和其他特定于软件的逻辑打包在一起而使用它们。
将自定义资源定义 (CRD) 添加到集群后,可以使用 CLI 从文件使用 CR 规范创建自定义资源 (CR)。
为 CR 创建一个 YAML 文件。在下面的示例定义中,cronSpec
和image
自定义字段设置在Kind: CronTab
的 CR 中。Kind
来自 CRD 对象的spec.kind
字段
apiVersion: "stable.example.com/v1" (1)
kind: CronTab (2)
metadata:
name: my-new-cron-object (3)
finalizers: (4)
- finalizer.stable.example.com
spec: (5)
cronSpec: "* * * * /5"
image: my-awesome-cron-image
1 | 指定来自 CRD 的组名和 API 版本(名称/版本)。 |
2 | 指定 CRD 中的类型。 |
3 | 为对象指定一个名称。 |
4 | 指定对象的终结器(如有)。终结器允许控制器实现必须在删除对象之前完成的条件。 |
5 | 指定特定于对象类型的条件。 |
创建文件后,创建对象
$ oc create -f <file_name>.yaml
可以使用 CLI 检查集群中存在的自定义资源 (CR) 对象。
CR 对象存在于您有权访问的命名空间中。
要获取有关特定 CR 种类的信息,请运行
$ oc get <kind>
例如
$ oc get crontab
NAME KIND
my-new-cron-object CronTab.v1.stable.example.com
资源名称不区分大小写,您可以使用 CRD 中定义的单数或复数形式,以及任何简短名称。例如
$ oc get crontabs
$ oc get crontab
$ oc get ct
您还可以查看 CR 的原始 YAML 数据
$ oc get <kind> -o yaml
例如
$ oc get ct -o yaml
apiVersion: v1
items:
- apiVersion: stable.example.com/v1
kind: CronTab
metadata:
clusterName: ""
creationTimestamp: 2017-05-31T12:56:35Z
deletionGracePeriodSeconds: null
deletionTimestamp: null
name: my-new-cron-object
namespace: default
resourceVersion: "285"
selfLink: /apis/stable.example.com/v1/namespaces/default/crontabs/my-new-cron-object
uid: 9423255b-4600-11e7-af6a-28d2447dc82b
spec:
cronSpec: '* * * * /5' (1)
image: my-awesome-cron-image (1)
1 | 显示您用于创建对象的 YAML 中的自定义数据。 |