什么是 Kubernetes 自定义资源定义 (CRD)?

x33g5p2x  于2022-08-17 转载在 Kubernetes  
字(0.6k)|赞(0)|评价(0)|浏览(531)

自定义资源定义 (CRD) 是 Kubernetes API 扩展,可以定义新的对象类型。Pod、ReplicaSet、ConfigMap 和 Ingress 是常见内置资源的示例。CRD 允许您将全新的类型添加到此列表中,然后使用熟悉的 Kubernetes 工具(例如 Kubectl)管理它们。

CRD 机制是有意抽象的,可以以多种方式用于存储数据和构建新功能。您会在许多流行的社区工具中找到自定义资源:Cert-Manager定义了表示 SSL 证书和颁发者的对象,而 Helm将 Charts 表示为它们自己的 CRD。

什么是资源?

Kubernetes 资源定义了可以存储在集群中的数据类型。它们是通过 Kubernetes API 访问的,该 API 提供了用于在每种资源类型中创建、列出和修改项目的端点。
您可以添加自定义资源以在集群中存储您自己的任意数据。您创建的项目将由 etcd 控制平面组件与内置资源的实例一起存储。API 会自动显示自定义资源,因此您无需设置自己的工具来创建项目实例。

默认情况下,CRD 充当简单的数据结构。虽然野外的 CRD 通常有自己的行为,但这不是 CRD 机制提供的。自定义 Kubernetes控制器和操作符可用于围绕自定义资源实现功能。如果没有控制器,CRD 的项目将始终作为静态集群内数据存在,您可以通过 Kubernetes API 提供的 CRUD 端点与之交互。

CRD 是可以随时创建和删除的动态组件。Kubernetes 中包含的一些对象类型也被实现为 CRD,从而在集群的核心中提供了更多的模块化。

创建 CRD

相关文章