Claims
claims 将一组受管资源表示为一个命名空间内的单一 Kubernetes 对象。
用户在访问 CompositeResourceDefinition 中定义的自定义 API 时会创建 claims。
crossplane 有四个核心组件,用户通常会把它们混为一谈:
- Composition - 用于定义如何创建资源的模板。
- Composition Resource Definition (
XRD
) - 一种自定义 API 规范。 - 复合资源 (
XR
) - 通过使用 Composition Resource Definition 中定义的自定义 API 创建。XRs 使用 Composition 模板来创建新的托管资源。 - claims (
XRC
) - 本页面。与 Composition Resource 类似,但具有名称空间范围。
创建claim
创建claim需要一个 Composition 和 CompositeResourceDefinition (XRD
)已经安装。
Composition 定义了要创建的资源集。 XRD 定义了用户为请求资源集而调用的自定义 API。
Crossplane组件关系图](/media/composition-how-it-works.svg)
例如,该
创建了一个 Composition 资源 API 端点
并启用claim API 端点
1apiVersion: apiextensions.crossplane.io/v1
2kind: CompositeResourceDefinition
3metadata:
4 name: xmydatabases.example.org
5spec:
6 group: example.org
7 names:
8 kind: XMyDatabase
9 plural: xmydatabases
10 claimNames:
11 kind: Database
12 plural: databases
13 # Removed for brevity
claim被引用 XRD 的
API 端点来请求资源。
claim的
与 XRD
和
与 XRD
1apiVersion: example.org/v1alpha1
2kind: database
3metadata:
4 name: my-claimed-database
5spec:
6 # Removed for brevity
当用户在 namespace 中创建一个 Composition 时,crossplane 也会创建一个复合资源。
被引用
来查看相关 Composition 资源。
资源参考
是为该claim创建的 Composition 资源 crossplane。
1kubectl describe database.example.org/my-claimed-database
2Name: my-claimed-database
3API Version: example.org/v1alpha1
4Kind: database
5Spec:
6 Resource Ref:
7 API Version: example.org/v1alpha1
8 Kind: XMyDatabase
9 Name: my-claimed-database-rr4ll
10# Removed for brevity.
被引用
在 Composition 资源上查看
将复合资源与原始 claims 链接起来。
1kubectl describe xmydatabase.example.org/my-claimed-database-rr4ll
2Name: my-claimed-database-rr4ll
3API Version: example.org/v1alpha1
4Kind: XMyDatabase
5Spec:
6 Claim Ref:
7 API Version: example.org/v1alpha1
8 Kind: database
9 Name: my-claimed-database
10 Namespace: default
Crossplane 支持直接创建复合资源。 Composition 允许为使用自定义 API 的用户提供名称空间范围和隔离。
如果您在 Kubernetes 部署中不使用 namespace,则不需要claim。
claim现有 Composition 资源
默认情况下,创建一个 Composition 会创建一个新的复合资源。 Claims 也可以链接到现有的复合资源。
claim现有复合资源的一个用例可能是资源调配缓慢。 复合资源可以预先调配,claim可以使用这些资源,而无需等待创建。
设置claim的
并匹配预先存在的 Composition 资源
.
1apiVersion: example.org/v1alpha1
2kind: database
3metadata:
4 name: my-claimed-database
5spec:
6 resourceRef:
7 apiVersion: example.org/v1alpha1
8 kind: XMyDatabase
9 name: my-pre-created-xr
如果一个 claims 指定了一个
则 crossplane 不会创建复合资源。
资源编号。
手动定义资源编号
无需手动定义。资源
的信息。
claim connection secrets
如果claim需要连接secret,claim必须定义一个
对象。
写入
对象定义了用于保存连接详细信息的 Kubernetes secret 对象的名称。
例如,将一个名为
被引用
的
.
1apiVersion: example.org/v1alpha1
2kind: database
3metadata:
4 name: my-claimed-database
5spec:
6 writeConnectionSecretToRef:
7 name: my-claim-secret
有关连接secret的更多信息,请阅读连接secret知识库文章.