ASM 1.28 以降で利用可能な ASMReconcileNSLabels CRD を使用すると、名前空間ラベルの同期ポリシーを設定できます。このリファレンスでは、YAML の例とフィールドの説明を記載します。
ユースケース
マルチクラスターの ASM インスタンスでは、コントロールプレーン (ASM インスタンス) とデータプレーン (Kubernetes クラスター) の名前空間は独立して管理されます。コントロールプレーンの名前空間に、サイドカーの自動インジェクションやアンビエントモードの有効化などの Istio 関連のラベルを適用すると、これらのラベルはデフォルトでデータプレーンのクラスターに同期されます。ASMReconcileNSLabels CRD を使用して、この動作を変更できます。
制限事項
ASM インスタンスはバージョン 1.28 以降である必要があります。アップグレード手順については、ASM インスタンスのアップグレードをご参照ください。
ASMReconcileNSLabelsはクラスター スコープのリソースです。ASM インスタンスには、defaultという名前のリソースを 1 つだけ作成できます。同期されるのは、以下の Istio 関連のラベルのみです。カスタムラベルは影響を受けません:
istio.io/dataplane-mode:名前空間のアンビエントモードを有効にします。istio-injection:名前空間のサイドカーの自動インジェクションを有効または無効にします。istio.io/rev:名前空間を特定の Istio リビジョンに割り当てます。
YAML の例
例 1:名前空間ラベル同期のグローバルな有効化
コントロールプレーンからすべてのデータプレーンクラスターに名前空間ラベルを同期します。
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default # default である必要があります
spec:
syncPolicy:
enabled: true例 2:名前空間ラベル同期のグローバルな無効化
すべての名前空間ラベルのデータプレーンクラスターへの同期を停止します。
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: false例 3:特定のクラスターへの同期 (許可リスト)
指定されたデータプレーンクラスターにのみ名前空間ラベルを同期します。enabled が true の場合、clusters リスト (クラスター ID) は許可リストとして機能します。
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: true
clusters:
- c-xxxx1 # データプレーンのクラスター ID
- c-xxxx2例 4:特定のクラスターの除外 (拒否リスト)
指定されたクラスターを除くすべてのデータプレーンクラスターに名前空間ラベルを同期します。enabled が false の場合、clusters リスト (クラスター ID) は拒否リストとして機能します。
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: false
clusters:
- c-xxxx3 # データプレーンのクラスター ID例 5:ソースクラスターの指定
cardinal フィールドを使用して、ソースクラスターの ID を指定します。
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: true
cardinal: c-xxxx4 # 同期のソースクラスターの ID例 6:許可リストとソースクラスターの組み合わせ
指定されたソースクラスターから名前空間ラベルを読み取り、許可リスト内のクラスターにのみ同期します。
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: true
cardinal: c-xxxx4 # 同期のソースクラスターの ID
clusters:
- c-xxxx1
- c-xxxx2フィールド
Spec
フィールド | タイプ | 必須 | 説明 |
syncPolicy | SyncPolicy | いいえ | データプレーンクラスターへの名前空間ラベルの同期に関するグローバルポリシーを設定します。デフォルトでは、このフィールドを省略すると、ラベルはすべてのデータプレーンクラスターに同期されます。 |
SyncPolicy
SyncPolicy オブジェクトは、名前空間ラベルの同期動作を定義します。enabled フィールドと clusters フィールドを組み合わせることで、以下のルールに基づいて同期範囲が決定されます:
enabled | clusters | 同期の動作 |
| 空 | すべてのデータプレーンクラスターに同期します。 |
|
| クラスター A と B にのみ同期します (許可リスト)。 |
| 空 | どのクラスターにも同期しません。 |
|
| クラスター A と B を除くすべてのクラスターに同期します (拒否リスト)。 |
フィールド | タイプ | 必須 | 説明 |
enabled | bool | いいえ | 同期ポリシーの有効状態を制御します。デフォルト値は |
cardinal | string | いいえ | ラベル同期のソースクラスターの ID を指定します。指定しない場合、デフォルトでコントロールプレーンクラスターからラベルが同期されます。指定されたクラスターが存在しない場合、システムはフォールバックしてコントロールプレーンクラスターを使用します。 |
clusters | string[] | いいえ | データプレーンクラスター ID のリストです。このパラメーターは enabled フィールドと併用されます。このリストは、 |