自定义资源定义(CRD) 是 Kubernetes 中用于添加新的资源类型的功能。通过 CRD,可以在 Kubernetes API 中定义自定义资源,从而扩展其功能。
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: example-resources.myorg.com
spec:
group: myorg.com
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
name:
type: string
size:
type: integer
scope: Namespaced
names:
plural: exampleresources
singular: exampleresource
kind: ExampleResource
在此示例中,定义了一个名为 ExampleResource
的新资源类型。
apiVersion: myorg.com/v1
kind: ExampleResource
metadata:
name: example-resource-instance
spec:
name: my-example
size: 3
此 YAML 文件创建了一个 ExampleResource
的实例,其中包含自定义的规格。
通过这些案例和技巧,可以看出 CRD 如何使 Kubernetes 用户能够为其特定需求扩展 Kubernetes API,从而提高其功能性和灵活性。