第 20 章 使用自定义资源扩展 Kubernetes API
20.1. Kubernetes 自定义资源定义
在 Kubernetes API 中,资源是存储某一类 API 对象集合的端点。例如,内置 pod 资源包含一组 Pod 对象。
自定义资源 是一个扩展 Kubernetes API 的对象,或允许您在项目或集群中引入自己的 API。
自定义资源定义 (CRD)文件定义了自己的对象类型,并允许 API 服务器处理整个生命周期。将 CRD 部署到集群中会导致 Kubernetes API 服务器开始提供指定的自定义资源。
当您创建新的自定义资源定义(CRD)时,Kubernetes API 服务器会通过创建新的 RESTful 资源路径来做出反应,该路径可由整个集群或单个项目(命名空间)访问。与现有的内置对象一样,删除项目会删除该项目中的所有自定义对象。
如果要向用户授予 CRD 访问权限,请使用集群角色聚合为用户授予 admin、edit 或 view 默认集群角色的访问权限。集群角色聚合支持将自定义策略规则插入到这些集群角色中。这一行为会将新资源整合至集群的 RBAC 策略中,就像内置资源一样。
注意
虽然只有集群管理员可创建 CRD,但如果您具有读写权限,则可以从 CRD 创建对象。