差异化策略
Karmada提供独立的差异化策略API,用来配置与集群相关的差异化配置。了解更多关于Karmada的信息,请参见Karmada。
创建差异化策略
- 登录MCP控制台,单击左侧导航栏的“策略中心 > 差异化策略”,单击“YAML创建”。
- 编辑YAML参数,示例如下:
apiVersion: policy.karmada.io/v1alpha1 kind: OverridePolicy metadata: name: nginx-ccecluster-deployment namespace: default spec: overriders: plaintext: - operator: replace path: /spec/replicas value: 2 - operator: add path: /spec/template/spec/containers value: - image: 'nginx:perl' imagePullPolicy: IfNotPresent name: container-0 resources: limits: cpu: 250m memory: 512Mi requests: cpu: 250m memory: 512Mi resourceSelectors: - apiVersion: apps/v1 kind: Deployment name: nginx namespace: default targetCluster: clusterNames: - ccecluster
表1 差异化策略参数说明 参数
参数类型
描述
apiVersion
String
API版本,固定值“policy.karmada.io/v1alpha1”,该值不可修改。
kind
String
API类型,固定值“OverridePolicy”,该值不可修改。
metadata
metadata object
差异化策略的基本信息,为集合类的元素类型,包含一组由不同名称定义的属性。
spec
spec object
差异化策略相关属性详细信息,通过spec的描述来创建或更新对象。
表2 metadata 参数
参数类型
描述
name
String
差异化策略名称,命名必须唯一,需以小写字母开头,由小写字母、数字、中划线(-)组成,长度范围1-56位,且不能以中划线(-)结尾。
namespace
String
差异化策略所在命名空间。
表3 spec 参数
参数类型
描述
overriders
overriders object
差异化策略内容。
resourceSelectors
resourceSelectors object
选择关联的资源,差异化策略将对符合筛选条件的资源生效。
targetCluster
targetCluster object
选择差异化策略生效的集群。
表5 plaintext 参数
参数类型
描述
operator
String
对目标资源进行差异化操作,表示对资源操作路径下的内容进行增、删、改操作。
- add:在目标资源模板上增加一个字段,字段由操作路径指定。
- remove:在目标资源模板上删除一个字段,字段由操作路径指定。
- replace:在目标资源模板上更新一个字段,字段由操作路径指定。
例如下面的示例中,replace操作将目标资源YAML中的/spec/replicas参数修改为2,即实例数修改为2。
- operator: replace path: /spec/replicas value: 2
path
String
操作路径,用于指定目标资源YAML中的差异化位置。
例如,填写“/spec/replicas” 时,表示对目标资源配置中的/spec/replicas字段进行操作。
value
目标资源参数类型
在指定操作路径下,进行增、删、改的内容。
- operator字段为add:value值为目标资源路径下新增的内容。
- operator字段为remove:value值可为任意值,删除时无意义。
- operator字段为replace:value值为目标资源路径下进行替换的新内容。
- YAML内容编辑完成后,单击“创建”。
- 单击“集群控制台”,进入差异化集群的控制台,可以查看到关联资源差异化的结果。
修改差异化策略
- 登录MCP控制台,单击左侧导航栏的“策略中心 > 差异化策略”。
- 在列表中选择需要更新的差异化策略,单击“操作”栏中的“YAML”按钮。
- 单击弹出窗口中的“编辑”按钮,修改YAML内容。
- YAML内容修改完成后,单击“更新”。
- 单击“集群控制台”,进入差异化集群的控制台,可以查看到关联资源差异化的结果。