kubernetes CRD是否仅管理pod?

camsedfj  于 2023-03-01  发布在  Kubernetes
关注(0)|答案(2)|浏览(126)

到目前为止,我在CRDs上工作过一段时间。最近,我的一个同事声称,自定义资源最终只会管理pod。这是真的吗?你也可以为服务或配置图做CRD吗?

q5iwbnjs

q5iwbnjs1#

自定义资源 definition 并不管理任何内容,它只是一个特定API组、版本和种类的定义(如Kubernetes清单顶部所示),不属于标准Kubernetes API的一部分。如果您安装了CRD,则可以kubectl get customtypename并运行类似的命令,但创建其中一个对象实际上不会发生任何事情。
典型operator pattern的另一部分是Kubernetes controller,这是一个通常在集群内运行的程序,它使用Kubernetes API执行一些操作。
一个控制器可以读写 * 任何 * Kubernetes资源;例如,您可以创建一个ConfigMap来响应自定义资源的更改,或者在自定义资源中引用ConfigMap,然后将这两个数据组合起来以调用某个外部API。

pcww981p

pcww981p2#

CRD用于创建、存储和公开Kubernetes API对象,但也可用于其他目的。CRD还可用于创建服务和配置的自定义资源。例如,服务的CRD,

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: service-crd
spec:
  group: mycompany.com
  version: v1
  scope: Namespaced
  names:
    kind: Service
    plural: services

上面的yaml将指定一个名为service-crd的CRD,它可用于创建和管理mycompany.com。有了这个自定义资源定义,您就可以使用API来创建、更新和删除服务。
可以使用CRD将mount a config map转换为自定义对象。而配置Map更适合在kubernetes中存储非机密信息。如果需要存储更复杂的数据结构,请使用CRD。
如需了解更多信息,请访问blog by Dawid Ziolkowski

相关问题