日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

分發策略與差異化策略

ACK One艦隊的應用分發通過分發策略和差異化策略完成。分發策略(PropagationPolicy)用于定義哪些資源需要分發到哪些集群中,差異化策略(OverridePolicy)用于定義資源在分發至不同集群時需要哪些差異化配置。本文詳細介紹分發策略(PropagationPolicy)和差異化策略(OverridePolicy)的配置說明。

分發策略

您可以通過定義PropagationPolicyClusterPropagationPolicy來配置分發策略,實現應用的多集群分發,PropagationPolicyClusterPropagationPolicy設計參考Karmada開源項目,與Karmada的ClusterPropagationPolicyPropagationPolicy接口兼容。

  • ClusterPropagationPolicy:用于集群內應用的分發,支持集群級別應用的分發,包括PersistentVolumeStorageClassNamespaceCustomResourceDefinition,也支持任意命名空間(不包括系統命名空間)的應用分發。具體分發資源的RBAC權限,受多集群艦隊RBAC權限的控制。

  • PropagationPolicy:用于命名空間級別的應用分發,只能分發其所在命名空間的應用。

下文以一個通過按靜態權重分發應用的PropagationPolicy為例,介紹如何定義一個分發策略以及各參數含義。

apiVersion: one.alibabacloud.com/v1alpha1
kind: PropagationPolicy
metadata:
  name: example
  namespace: demo
spec:
  resourceSelectors:
  - apiVersion: apps/v1
    kind: Deployment
    name: demo-deploy
  - apiVersion: v1
    kind: ConfigMap
    name: demo-cm
  - apiVersion: apps/v1
    kind: Deployment
    labelSelector:
      matchExpressions:
      - key: app
        operator: In
        values:
        - xxxx
  prune: false
  conflictResolution: abort
  placement:
    clusterAffinity:
      clusterIds:
      - cxxxxx # 您的集群ID。
      - cxxxxx # 您的集群ID。
    replicaScheduling:
      replicaSchedulingType: Divided
      replicaDivisionPreference: Weighted
      weightPreference:
        staticWeightList:
        - targetCluster:
            clusterIds:
            - cxxxxx
          weight: 2
        - targetCluster:
            clusterIds:
            - cxxxxxx
          weight: 1

主要參數說明

參數

是否必選

說明

示例值

apiVersion

API版本信息。

此處固定為one.alibabacloud.com/v1alpha1

kind

分發策略的級別,包括PropagationPolicyClusterPropagationPolicy

  • ClusterPropagationPolicy:分發集群級別的應用以及集群內任意命名空間(不包括系統命名空間)的應用。

  • PropagationPolicy:只能分發它所在命名空間的應用。

PropagationPolicy

namespace

kindPropagationPolicy時需要指定已有的命名空間。

demo

name

分發策略的名稱。

policy-xxxx

resourceSelectors

選擇一個或者多個要分發的K8s資源。詳情參見下方resourceSelector參數說明

resourceSelectors:
-apiVersion: apps/v1
 kind: Deployment
 name: nginx
-apiVersion: v1
 kind: ConfigMap
 name: cm

placement

placement:
    clusterAffinity:
      clusterIds:
      - ${cluster1-id}
      - ${cluster2-id}
  replicaScheduling:
    replicaSchedulingType: Divided
replicaDivisionPreference: Weighted
weightPreference:
staticWeightList:
- targetCluster:
    clusterIds:
    - ${cluster1-id}
  weight: 2
- targetCluster:
    clusterIds:
    - ${cluster2-id}
  weight: 1

prune

表示刪除掉Policy后是否會刪除相應分發資源,默認false

false

conflictResolution

表示資源分發沖突時處理策略。包括OverwriteAbort

  • Overwrite:如果集群已有同名資源,則覆蓋同名資源。

  • Abort:如果集群已有同名資源,則停止分發該資源。

Abort

resourceSelector參數說明

參數

是否必選

說明

示例值

apiVersion

分發資源的API版本。

v1

kind

分發資源的類型。

Deployment

namespace

分發資源的命名空間。

說明

如果使用PropagationPolicy,則命名空間就是其所在的命名空間,該字段不會在其他命名空間生效。

demo

name

分發資源的名稱。

任意名稱

labelSelector

通過標簽選擇器來選擇資源。

  • matchLabels:表示keyvalue鍵值對。

  • matchExpressions:表示一個數組,每個元素包含keyoperatorvalues三個參數。

labelSelector:
  matchLabels:
    region: A
    az: zone0
  matchExpressions:
  - key: app
    operator: In
    values:
    - nginx

clusterAffinity參數說明

參數

是否必選

說明

示例值

clusterIds

表示需要分發資源的集群列表,通過集群ID的形式展示。

clusterIds:
- cxxxx
- cxxxx

excludeClusters

表示去除掉的集群列表集群ID,通過集群ID的形式展示。

excludeClusters:
- cxxxx
- cxxxx

labelSelector

通過標簽選擇器選擇待分發的集群。

labelSelector:
  matchLabels:
    region: A
    az: zone0
  matchExpressions:
  - key: app
    operator: In
    values:
    - nginx

replicaScheduling參數說明

參數

是否必選

說明

示例值

replicaSchedulingType

副本調度策略,包括DuplicatedDivided

  • Duplicated:表示將應用直接復制到每個集群中。

  • Divided:表示將應用副本數按照集群權重進行調度,所有關聯集群的副本數之和為艦隊集群中該應用的spec的副本數。

Duplicated

replicaDivisionPreference

副本拆分策略,設置為weighted,表示按照權重來進行副本數的調度。

weighted

weightPreference

staticWeightList是一個數組,每個元素包含clusterAffinityweight兩個參數。

  • clusterAffinity:表示應用待分發的集群。詳情參見clusterAffinity參數說明

  • weight:表示選中集群的權重,數字越大則調度到該集群的副本數越多。

如下示例表示cluster1權重為2,cluster2權重為1,如果總副本數為3,則有2個副本會調度到cluster1,1個副本會調度到cluster2。

weightPreference:
  staticWeightList:
  - targetCluster:
  clusterIds:
  - ${cluster1-id}
  weight: 2
  - targetCluster:
  clusterIds:
  - ${cluster2-id}
  weight: 1

差異化策略

在應用分發時,某些不同集群可能需要不同的配置,差異化策略可以將對應集群的應用進行差異化部署。您可以通過定義ClusterOverridePolicyOverridePolicy來配置差異化策略。ClusterOverridePolicyOverridePolicy設計參考Karmada開源項目,與Karmada的ClusterOverridePolicy

OverridePolicy接口兼容。

  • ClusterOverridePolicy:用于差異化修改集群級別的資源,包括PersistentVolumeStorageClassNamespaceCustomResourceDefinition,也支持差異化修改任意命名空間(不包括系統命名空間)的資源。

  • OverridePolicy:用于命名空間級別的資源的差異化修改,可以對它所在命名空間的分發資源進行差異化修改。

下文以OverridePolicy為例,介紹如何定義一個差異化策略以及各參數含義。

apiVersion: one.alibabacloud.com/v1alpha1
kind: OverridePolicy
metadata:
  name: demo
  namespace: demo
spec:
  resourceSelectors:
    - apiVersion: apps/v1
      kind: Deployment
      name: example
  overrideRules:
    - targetCluster:
        clusterIds:
          - cxxxxx #您的集群ID。
      overriders:
        plaintext:
          - operator: replace
            path: /spec/replicas
            value: 1
        imageOverrider:
          - component: Registry
            operator: add
            value: registry.cn-hangzhou.aliyuncs.com/xxxx

主要參數說明

參數

是否必選

說明

示例值

apiVersion

API版本信息。

此處固定為one.alibabacloud.com/v1alpha1

kind

差異化策略類型,包括ClusterOverridePolicyOverridePolicy

  • ClusterOverridePolicy:可以差異化修改集群級別的資源以及集群內任意命名空間(不包括系統命名空間)的資源。

  • OverridePolicy:只能分發它所在命名空間的資源。

OverridePolicy

namespace

kindOverridePolicy時需要指定,指定已有的命名空間。

demo

name

差異化策略名稱。

任意名稱

resourceSelectors

resourceSelector數組。詳情請參見下方resourceSelector參數說明

resourceSelectors:
-apiVersion: apps/v1
  kind: Deployment
  name: nginx
-apiVersion: v1
  kind: ConfigMap
  name: cm

overrideRules

ruleWithCluster數組。詳情請參見下方ruleWithCluster參數說明

overrideRules:
    - targetCluster:
        clusterNames:
          - ${cluster1-id}
      overriders:
        imageOverrider:
          - component: Registry
            operator: add
            value: registry.cn-hangzhou.aliyuncs.com

resourceSelector參數說明

參數

是否必選

說明

示例值

apiVersion

選擇分發資源的apiVersion

v1

kind

分發資源的類型。

Deployment

namespace

分發資源的命名空間。

說明

如果使用OverridePolicy,則命名空間就是其所在的命名空間,該字段不會在其他命名空間生效。

demo

name

分發資源名稱。

任意名稱

labelSelector

通過標簽選擇器選擇待分發的資源。

labelSelector:
  matchLabels:
    region: A
    az: zone0
  matchExpressions:
  - key: app
    operator: In
    values:
    - nginx

clusterAffinity參數說明

參數

是否必選

說明

示例值

clusterIds

表示需要分發資源的集群列表,通過集群ID的形式展示。

clusterIds:
- cxxxx
- cxxxx

excludeClusters

表示去除掉的集群列表集群ID,通過集群ID的形式展示。

excludeClusters:
- cxxxx
- cxxxx

labelSelector

通過標簽選擇器選擇待分發的集群。

labelSelector:
  matchLabels:
    region: A
    az: zone0
  matchExpressions:
  - key: app
    operator: In
    values:
    - nginx

ruleWithCluster參數說明

參數

是否必選

說明

示例值

targetCluster

通過clusterAffinity參數進行集群選擇。詳情請參見resourceSelector參數說明

  clusterAffinity:
      clusterIds:
      - cxxxxx # 您的集群ID。
      - cxxxxx # 您的集群ID。

overriders

overriders結構體數組,其中包含一些差異化規則,目前支持imageplaintext,可按需選擇。詳情請參見overriders參數說明

  • plaintext:通過JSON Patch的pathvalueoperator來修改。

  • imageOverrider:用于修改鏡像。

overriders:
  imageOverrider:
    - component: Registry
      operator: add
      value: registry.cn-hangzhou.aliyuncs.com

overriders參數說明

參數

是否必選

說明

示例值

imageOverrider

修改鏡像的方式。

  • predicate(可選):表示待修改的鏡像的path,例如/spec/template/spec/containers/0/image,如果為空則所有鏡像都會進行修改

  • component:在RegistryRepositoryTag三種類型選擇一種方式對鏡像進行修改,鏡像格式為[registry/]repository[:tag]

  • operator:支持選擇removeaddreplace

  • value:如果operatorreplaceadd,表示新的值。

imageOverrider:
  - component: Registry
    operator: add
    value: registry.cn-hangzhou.aliyuncs.com

plaintext

通過JSON Patch方式修改資源。

  • path:表示目標字段的路徑。

  • value:表示目標字段的值,如果operatorremove,則該字段為空。

  • operator:支持選擇removeaddreplace

plaintext:
  - operator: replace
    path: /spec/replicas
    value: 1

相關文檔

如何在艦隊實例中創建應用,并配置相應的分發策略或差異化策略進行多集群分發,請參見應用分發快速入門