实现自定义资源定义 (CRD)
1. 目标
创建一个自定义资源定义 (CRD),并通过 Operator 模式管理该资源。
2. 操作步骤
2.1 创建 CRD
创建一个名为 myresource 的 CRD。
# myresource-crd.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: myresources.example.com
spec:
group: example.com
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
name:
type: string
scope: Namespaced
names:
plural: myresources
singular: myresource
kind: MyResource
2.2 部署 CRD
使用 kubectl 部署 CRD。
kubectl apply -f myresource-crd.yaml
2.3 创建自定义资源
创建一个名为 myresource-instance 的自定义资源。
# myresource-instance.yaml
apiVersion: example.com/v1
kind: MyResource
metadata:
name: myresource-instance
spec:
name: "example"
2.4 部署自定义资源
使用 kubectl 部署自定义资源。
kubectl apply -f myresource-instance.yaml
2.5 验证部署
验证 CRD 和自定义资源是否成功创建。
kubectl get crd
kubectl get myresources