このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
2 つのクラスター間でターゲットグループを共有する
次の例では、2 つのクラスター間で 1 つのターゲットグループを共有します。最初のクラスターは Ingress を介して Application Load Balancer を所有し、2 番目のクラスターは手動で作成された TargetGroupBinding を介して共有ターゲットグループを結合します。開始する前に、マルチクラスターターゲットグループを設定する をレビューして、MultiCluster サポートの仕組みと有効にする方法を理解してください。
クラスター 1 – Ingress を介してロードバランサーを所有する
アプリケーション (NodePort Service を使用したデプロイなど) をデプロイし、マルチクラスター注釈を持つ IngressClass と Ingress を作成します。
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb-mc spec: controller: eks.amazonaws.com/alb --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: echoserver namespace: echoserver annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: instance alb.ingress.kubernetes.io/multi-cluster-target-group: "true" spec: ingressClassName: alb-mc rules: - http: paths: - path: / pathType: Exact backend: service: name: echoserver port: number: 80
コントローラーはロードバランサーをプロビジョニングし、spec.multiClusterTargetGroup: true を使用して TargetGroupBinding を生成します。生成された TargetGroupBinding と Service の次の値に注意してください。2 番目のクラスターには 3 つすべてが必要です:
-
targetGroupARN。 -
Service
nodePort。 -
spec.networking.ingress[].from[].securityGroup.groupIDからのロードバランサーのセキュリティグループ ID。
クラスター 2 – TargetGroupBinding を介して共有ターゲットグループを結合する
同じアプリケーションをデプロイし、クラスター 1 の nodePort に Service をピン留めしてから、クラスター 1 のターゲットグループ ARN とセキュリティグループ ID を参照する TargetGroupBinding を作成します。
apiVersion: eks.amazonaws.com/v1 kind: TargetGroupBinding metadata: name: mc-echoserver namespace: echoserver spec: multiClusterTargetGroup: true serviceRef: name: echoserver port: 80 targetGroupARN: <cluster-1-target-group-arn> targetType: instance networking: ingress: - from: - securityGroup: groupID: <cluster-1-alb-security-group-id> ports: - port: <cluster-2-node-port> protocol: TCP
両方のバインドで MultiCluster サポートを有効にすると、各クラスターは自身のターゲットのみを登録および登録解除します。両方のクラスターのノードは単一の共有ターゲットグループで正常な状態を維持し、ロードバランサーはそれらのすべてにトラフィックを分散します。