最近更新时间:2023.09.25 12:25:24
首次发布时间:2023.07.20 10:49:32
分布式云原生平台提供 CRD 资源添加能力,用户可根据实际情况,添加命名空间级别或集群级别的 CRD 资源。本文为您详细介绍如何添加 CRD 资源。
多集群分发能力是分布式云原生平台的核心特性之一,成功添加 CRD 资源即表示启用 CRD 资源的多集群分发能力。
已经准备符合要求的 CRD 资源 Yaml,具体内容和定义以用户实际使用场景为准。
不允许创建联邦集群中已存在的资源类型。
# 本文以 CronTab 为例,展示 CRD 资源 Yaml 示例和关键参数说明。 apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: crontabs.stable.example.com # 名称必须与下面的 spec 字段匹配,格式为:<名称的复数形式>.<组名>。 spec: group: stable.example.com # 组名,用于 REST API: /apis/<组>/<版本>。 versions: # 版本,列举此 CustomResourceDefinition 所支持的版本。 - name: v1 # 版本名称,用于 REST API: /apis/<组>/<版本>。 served: true # 版本启用状态,通过 served 独立标志每个版本启用还是禁止。 storage: true # 是否为存储版本,要求其中一个且只有一个版本必需被标记为存储版本。 schema: openAPIV3Schema: type: object properties: spec: type: object properties: cronSpec: type: string image: type: string replicas: type: integer scope: Namespaced # 资源级别,Namespaced 表示命名空间级别,Cluster 表示集群级别。 names: plural: crontabs # 名称的复数形式,用于 URL:/apis/<组>/<版本>/<名称的复数形式>。 singular: crontab # 名称的单数形式,作为命令行使用时和显示时的别名。 kind: CronTab # kind 通常是单数形式的帕斯卡编码(PascalCased)形式,用于资源清单使用。 shortNames: # shortNames 允许在命令行使用较短的字符串来匹配资源。 - ct
配置项 | 说明 |
---|---|
CRD 资源 Yaml | 用于定义自定义资源,将根据实际场景准备的 CRD 资源 Yaml 粘贴至此,示例和关键字段说明参见上文举例。 |
副本模式调度 | 默认关闭,提供复制分发能力。开启后,该资源支持根据权重将期望副本分发到多个成员集群中。
|
副本不可调度迁移 | 默认关闭,不提供自动迁移能力。开启后,该资源支持通过部署策略启用该特性,当副本在成员集群中处于不可调度状态超过一定时间后,会自动迁移到其他健康成员集群中。
|
自定义状态采集字段 | 将成员集群中已分发资源的指定字段信息采集到联邦侧进行统一查看,例如:status 信息。 |
说明
提交配置过程将对 CRD 资源的 Yaml 格式和 Kubernetes CRD 资源定义规范校验进行校验,若提示报错,需要根据报错提示修改 Yaml,完成后重新提交即可。