すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:配信ポリシーと差分化ポリシー

最終更新日:Feb 25, 2026

ACK One は、フリート内のアプリケーションを配信するために、配信ポリシー (PropagationPolicy) と差分化ポリシー (OverridePolicy) を使用します。配信ポリシー (PropagationPolicy) は、どのリソースをどのクラスターに配信するかを定義します。差分化ポリシー (OverridePolicy) は、リソースのクラスター固有の構成を定義します。このトピックでは、配信ポリシーと差分化ポリシーの設定方法について説明します。

配信ポリシー

PropagationPolicy または ClusterPropagationPolicy を定義して、複数のクラスターにアプリケーションを配信するための配信ポリシーを設定できます。PropagationPolicyClusterPropagationPolicy は、オープンソースの Karmada プロジェクトに基づいており、Karmada の ClusterPropagationPolicy および PropagationPolicy インターフェイスと互換性があります。

  • ClusterPropagationPolicy: PersistentVolumeStorageClassNamespaceCustomResourceDefinition などのクラスターレベルのアプリケーションを配布するために使用されます。 また、システム名前空間を除く、任意の名前空間でのアプリケーションの配布もサポートしています。 リソース配布の RBAC 権限は、マルチクラスターフリートの RBAC 権限によって制御されます。

  • PropagationPolicy:名前空間レベルのアプリケーションを配信するために使用されます。自身の名前空間内のアプリケーションのみを配信できます。

次の例は、静的な重みに基づいてアプリケーションを配信する PropagationPolicy を示し、ポリシーを定義するために使用されるパラメーターについて説明します。

apiVersion: policy.one.alibabacloud.com/v1alpha1
kind: PropagationPolicy
metadata:
  name: web-demo
  namespace: demo
spec:
  resourceSelectors:
  - apiVersion: apps/v1
    kind: Deployment
    name: web-demo
  - apiVersion: v1
    kind: ConfigMap
    name: cm-demo
  - apiVersion: apps/v1
    kind: Deployment
    labelSelector:
      matchExpressions:
      - key: app
        operator: In
        values:
        - xxxx
  preserveResourcesOnDeletion: true
  placement:
    clusterAffinity:
      clusterNames:
      - cxxxxx # ご利用のクラスター ID
      - cxxxxx # ご利用のクラスター ID
    replicaScheduling:
      replicaSchedulingType: Divided
      replicaDivisionPreference: Weighted
      weightPreference:
        staticWeightList:
        - targetCluster:
            clusterNames:
            - cxxxxx
          weight: 2
        - targetCluster:
            clusterNames:
            - cxxxxxx
          weight: 1

パラメーター

パラメーター

必須

説明

apiVersion

はい

API バージョン。

policy.one.alibabacloud.com/v1alpha1 に設定します。

kind

はい

配信ポリシーのレベル。有効値:PropagationPolicy および ClusterPropagationPolicy

  • ClusterPropagationPolicy:クラスターレベルのアプリケーションと、システム名前空間を除くクラスター内の任意の名前空間のアプリケーションを配信します。

  • PropagationPolicy:自身の名前空間内のアプリケーションのみを配信します。

PropagationPolicy

namespace

いいえ

kindPropagationPolicy に設定されている場合は、既存の名前空間を指定します。

demo

name

いいえ

配信ポリシーの名前。

policy-xxxx

resourceSelectors

いいえ

配信する 1 つ以上の Kubernetes リソースを選択します。詳細については、「resourceSelector パラメーター」をご参照ください。

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

propagateDeps

いいえ

依存リソースを自動的に配信するかどうかを指定します。たとえば、デプロイメントが ConfigMap を参照している場合、このパラメーターは ConfigMap もメンバークラスターに配信されるかどうかを決定します。

true または false

placement

はい

  • clusterAffinity:アプリケーションが配信されるクラスターを指定します。詳細については、「clusterAffinity パラメーター」をご参照ください。

  • replicaScheduling:デプロイメントや StatefulSet など、レプリカを持つリソースのスケジューリングポリシー。詳細については、「replicaScheduling パラメーター」をご参照ください。

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

dependentOverrides

いいえ

依存する overridePolicy を指定します。

リソースは、すべての依存する overridePolicy オブジェクトが適用された後にのみ配信されます。

dependentOverrides:
  - ${overridePolicy1-name}
  - ${overridePolicy2-name}

failover

いいえ

アプリケーションの故障後の failover 動作。

  • decisionConditions:TolerationSeconds:不健全なアプリケーションを許容する期間。デフォルト:300s

  • purgeMode

    • Immediately:アプリケーションを直ちに排除し、新しいものを作成します。

    • Graciously:グレースフルな排除を許可します。アプリケーションが一定期間内に再び健全になった場合、排除を停止できます。

    • Never:不健全なアプリケーションを排除しません。これには手動介入が必要です。

  • gracePeriodSecondspurgeModeGraciously に設定されている場合、このフィールドはグレースフルな排除の最大待機時間を指定します。デフォルト:600s

failover:
  application:
    decisionConditions:
      tolerationSeconds: 30
    purgeMode: Immediately

preserveResourcesOnDeletion

はい

ポリシーが削除された後、配信されたリソースを保持するかどうかを指定します。デフォルト:true。

false

resourceSelector パラメーター

パラメーター

必須

説明

apiVersion

はい

配信されるリソースの API バージョン。

v1

kind

はい

配信されるリソースのタイプ。

Deployment

namespace

いいえ

配信されるリソースの名前空間。

説明

PropagationPolicy を使用する場合、名前空間はポリシーが存在する名前空間です。このフィールドは他の名前空間では効果がありません。

demo

name

いいえ

配信されるリソースの名前。

任意の名前

labelSelector

いいえ

ラベルセレクターを使用してリソースを選択します。

  • matchLabelskeyvalue のキーと値のペア。

  • matchExpressions:各要素に keyoperator、および values パラメーターが含まれる配列。

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

clusterAffinity パラメーター

パラメーター

必須

説明

値の例

clusterNames

いいえ

リソースを配信するクラスター ID のリスト。

clusterNames:
- cxxxx
- cxxxx

excludeClusters

いいえ

配信から除外するクラスター ID のリスト。

excludeClusters:
- cxxxx
- cxxxx

labelSelector

いいえ

ラベルセレクターを使用して配信対象のクラスターを選択します。

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

replicaScheduling パラメーター

パラメーター

必須

説明

値のサンプル

replicaSchedulingType

いいえ

レプリカスケジューリングポリシー。有効値:Duplicated および Divided

  • Duplicated:各クラスターにアプリケーションを複製します。

  • Divided:クラスターの重みに基づいてアプリケーションのレプリカをスケジュールします。すべての関連クラスターにわたるレプリカの合計は、フリートクラスター内のアプリケーションの spec で指定されたレプリカ数と等しくなります。

Duplicated

customSchedulingType

いいえ

カスタムスケジューリングポリシー。現在、ジョブワークロードに対しては Gang スケジューリングのみがサポートされています。

Gang

replicaDivisionPreference

いいえ

レプリカ分割ポリシー。有効値:weighted および Aggregated

  • Weighted:重みに基づいてレプリカをスケジュールします。

  • Aggregated:可能な限り高いスコアのクラスターにレプリカを配信します。

weighted

weightPreference

いいえ

動的または静的な重みのプリファレンスを指定します。

  • dynamicWeight:現在 AvailableReplicas をサポートしています。このオプションは、メンバークラスターのリソース状況に基づいて配信可能なレプリカ数を推定し、クラスター間の利用可能なレプリカの比率に基づいてレプリカを分割します。

  • staticWeightList は、各要素に clusterAffinityweight パラメーターが含まれる配列です。

    • clusterAffinity:アプリケーションが配信されるクラスターを指定します。詳細については、「clusterAffinity パラメーター」をご参照ください。

    • weight:選択されたクラスターの重み。値が大きいほど、そのクラスターにスケジュールされるレプリカが多くなります。

次の例では、Cluster1 の重みは 2、Cluster2 の重みは 1 です。レプリカの総数が 3 の場合、2 つのレプリカが Cluster1 に、1 つのレプリカが Cluster2 にスケジュールされます。

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

次の例は、動的な重みスケジューリングを示しています:

weightPreference:
  dynamicWeight: AvailableReplicas

差分化ポリシー

アプリケーションをデプロイする際、クラスターごとに異なる構成が必要になる場合があります。差分化ポリシーを使用すると、クラスター固有の構成でアプリケーションをデプロイできます。ClusterOverridePolicy または OverridePolicy を定義して、差分化ポリシーを作成できます。ClusterOverridePolicyOverridePolicy は、オープンソースの Karmada プロジェクトに基づいており、Karmada の ClusterOverridePolicy と互換性があります。

OverridePolicy インターフェイスをサポートしています。

  • ClusterOverridePolicy: クラスター レベルのリソース(例: PersistentVolumeStorageClassNamespace、および CustomResourceDefinition)をオーバーライドするために使用されます。また、システム名前空間を除くすべての名前空間内のリソースのオーバーライドもサポートしています。

  • OverridePolicy:名前空間レベルのリソースをオーバーライドするために使用されます。自身の名前空間内の配信済みリソースをオーバーライドできます。

次の例は、OverridePolicy を示し、ポリシーを定義するために使用されるパラメーターについて説明します。

apiVersion: policy.one.alibabacloud.com/v1alpha1
kind: OverridePolicy
metadata:
  name: demo
  namespace: demo
spec:
  resourceSelectors:
    - apiVersion: apps/v1
      kind: Deployment
      name: example
  overrideRules:
    - targetCluster:
        clusterNames:
          - 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 バージョン。

policy.one.alibabacloud.com/v1alpha1 に設定します。

kind

はい

差分化ポリシーのタイプ。有効値:ClusterOverridePolicy および OverridePolicy

  • ClusterOverridePolicy:クラスターレベルのリソースと、システム名前空間を除くクラスター内の任意の名前空間のリソースをオーバーライドできます。

  • OverridePolicy:自身の名前空間内のリソースのみを配信できます。

OverridePolicy

namespace

いいえ

kindOverridePolicy に設定されている場合は、既存の名前空間を指定します。

demo

name

はい

差分化ポリシーの名前。

任意の名前

resourceSelectors

はい

resourceSelectors の配列。詳細については、「resourceSelector パラメーター」をご参照ください。

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

overrideRules

はい

ruleWithClusters の配列。詳細については、「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 パラメーター

パラメーター

必須

説明

値の例

clusterNames

いいえ

リソースを配信するクラスター ID のリスト。

clusterNames:
- cxxxx
- cxxxx

excludeClusters

いいえ

配信から除外するクラスター ID のリスト。

excludeClusters:
- cxxxx
- cxxxx

labelSelector

いいえ

ラベルセレクターを使用して配信対象のクラスターを選択します。

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

ruleWithCluster パラメーター

パラメーター

必須

説明

targetCluster

はい

clusterAffinity パラメーターを使用してクラスターを選択します。詳細については、「resourceSelector」をご参照ください。

  clusterAffinity:
      clusterNames:
      - cxxxxx # ご利用のクラスター ID
      - cxxxxx # ご利用のクラスター ID

overriders

はい

オーバーライドルールを含む overriders 構造体の配列。現在、imageplaintext がサポートされています。必要に応じていずれかを選択します。詳細については、「overriders パラメーター」をご参照ください。

  • plaintext:JSON パッチの pathvalue、および operator を使用してリソースを変更します。

  • imageOverrider:イメージを変更します。

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

overriders パラメーター

パラメーター

必須

説明

imageOverrider

いいえ

イメージの変更方法を指定します。

  • predicate (オプション):変更するイメージの path を指定します。例:/spec/template/spec/containers/0/image。このパラメーターが空の場合、すべてのイメージが変更されます。

  • component:イメージの変更方法を指定します。有効値:RegistryRepository、および Tag。イメージのフォーマットは [registry/]repository[:tag] です。

  • operator:実行する操作。有効値:removeadd、および replace

  • valueoperatorreplace または add の場合、このパラメーターは新しい値を指定します。

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

plaintext

いいえ

JSON パッチを使用してリソースを変更します。

  • path:対象フィールドへのパス。

  • value:対象フィールドの値。operatorremove の場合、このフィールドは空です。

  • operator:実行する操作。有効値:removeadd、および replace

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

参照情報

フリートインスタンスでアプリケーションを作成し、マルチクラスター配信のための配信ポリシーまたは差分化ポリシーを設定する方法の詳細については、「アプリケーション配信クイックスタート」をご参照ください。