

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# マルチクラスターターゲットグループを設定する
<a name="auto-multi-cluster-target-groups"></a>

デフォルトでは、Amazon EKS Auto Mode ロードバランサーコントローラーは、設定したターゲットグループの完全な制御を引き受けます。ターゲットグループがコントローラーに登録されると、現在クラスターにないターゲットが登録解除されます。これにより、ターゲットグループには、そのクラスターによって管理されるターゲットの正確なセットが反映されます。

**MultiCluster** サポートを有効にすると、この動作が変更されます。MultiCluster サポートが有効になっているターゲットグループは、複数の Kubernetes クラスターに関連付けることも、他のソースからの任意のターゲットをサポートすることもできます。各クラスターは、他のクラスターまたはソースに属するターゲットを登録解除する代わりに、所有するターゲットのみを登録および登録解除します。

## 仕組み
<a name="_how_it_works"></a>

MultiCluster サポートが有効になっている場合、各クラスターは管理するターゲットのセットを追跡し、共有ターゲットグループ内のそれらのターゲットのみを調整します。Amazon EKS Auto Mode は、各クラスターの追跡されたターゲットを、ロードバランサーリソースと同じ名前空間の `ConfigMap` という名前の Kubernetes `eks-lbc-targets-<targetgroupbinding-name>` に保存します。

**注記**  
アップストリームの AWS Load Balancer Controller は、この状態を `aws-lbc-targets-` プレフィックスを持つ `ConfigMap` に保存します。Amazon EKS Auto Mode では、プレフィックスは `eks-lbc-targets-` になるため、アップストリームガイダンスに従うときは、`eks-lbc-targets-` `ConfigMap` を検査します。

ロードバランサーは、登録されたすべてのターゲット全体にトラフィックを均等に分散します。コントローラーは、クラスター間の加重分散をサポートしていません。MultiCluster サポートは、`ip` と `instance` の両方のターゲットタイプで動作します。

## MultiCluster サポートを有効にする
<a name="_enable_multicluster_support"></a>

リソースタイプに応じて、次のいずれかの方法を使用して MultiCluster サポートを有効にします。
+  **TargetGroupBinding** – `spec.multiClusterTargetGroup: true` を設定します。
+  **Ingress (ALB)** – 注釈 `alb.ingress.kubernetes.io/multi-cluster-target-group: "true"` を追加します。
+  **Service (NLB)** – 注釈 `service.beta.kubernetes.io/aws-load-balancer-multi-cluster-target-group: "true"` を追加します。

## Amazon EKS 自動モードの考慮事項
<a name="_considerations_for_amazon_eks_auto_mode"></a>

AWS Load Balancer Controller GitHub ウェブサイトのアップストリーム [MultiCluster Target Groups](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/use_cases/multi_cluster/) ガイドでは、2 つのクラスター間で 1 つのターゲットグループを共有する方法について説明します。マルチクラスターアーキテクチャの詳細については、AWS ブログの「[Amazon EKS を使用した回復力のあるマルチクラスターアプリケーションの構築](https://aws.amazon.com/blogs/blogs/networking-and-content-delivery/building-resilient-multi-cluster-applications-with-amazon-eks/)」を参照してください。Amazon EKS Auto Mode でも同じフローが動作しますが、次の違いがあります:
+ `TargetGroupBinding` カスタムリソースは、`elbv2.k8s.aws/v1beta1` ではなく `eks.amazonaws.com/v1` API グループにあります。
+ `IngressClass` コントローラーは `eks.amazonaws.com/alb` です。
+ `alb.ingress.kubernetes.io/tags` 注釈を設定しないでください。`AmazonEKSLoadBalancingPolicy` マネージドポリシーは `aws:TagKeys` を許可リストに制限するので、カスタムタグはアクセス拒否エラーを引き起こし、コントローラーはそれらを調整できません。これにより、Ingress ファイナライザーが削除時にスタックする可能性があります。
+ ターゲットグループは 1 つの VPC にスコープされているため、すべての参加クラスターは同じ VPC 内にある必要があります。

## 例
<a name="_example"></a>

2 つのクラスター間で 1 つのターゲットグループを共有するステップバイステップの説明については、[2 つのクラスター間でターゲットグループを共有する](auto-multi-cluster-target-groups-example.md) を参照してください。ここでは、1 つのクラスターは Ingress を介してロードバランサーを所有し、もう 1 つのクラスターは `TargetGroupBinding` を介して結合します。