LOADING

加载过慢请使用代理,全球站仅提供非中国大陆地区CDN支持

10-3.自定义资源定义

实现自定义资源定义 (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

3. 参考文档