更新时间:2023-04-04 GMT+08:00
分享

差异化策略

Karmada提供独立的差异化策略API,用来配置与集群相关的差异化配置。了解更多关于Karmada的信息,请参见Karmada

创建差异化策略

  1. 登录MCP控制台,单击左侧导航栏的“策略中心 > 差异化策略”,单击“YAML创建”
  2. 编辑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

    选择差异化策略生效的集群。

    表4 overriders

    参数

    参数类型

    描述

    plaintext

    Array of plaintext 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值为目标资源路径下进行替换的新内容。
    表6 resourceSelectors

    参数

    参数类型

    描述

    apiVersion

    String

    目标资源的API版本。

    kind

    String

    目标资源的API类型。

    name

    String

    目标资源的名称。

    namespace

    String

    目标资源所处的的命名空间。

    表7 targetCluster

    参数

    参数类型

    描述

    clusterNames

    Array of strings

    差异化策略生效的集群名。

  3. YAML内容编辑完成后,单击“创建”
  4. 单击“集群控制台”,进入差异化集群的控制台,可以查看到关联资源差异化的结果。

修改差异化策略

  1. 登录MCP控制台,单击左侧导航栏的“策略中心 > 差异化策略”。
  2. 在列表中选择需要更新的差异化策略,单击“操作”栏中的“YAML”按钮。
  3. 单击弹出窗口中的“编辑”按钮,修改YAML内容。

  4. YAML内容修改完成后,单击“更新”
  5. 单击“集群控制台”,进入差异化集群的控制台,可以查看到关联资源差异化的结果。
分享:

    相关文档

    相关产品