다중 클러스터 대상 그룹 구성하기

다중 클러스터 대상 그룹 구성하기

기본적으로 Amazon EKS Auto Mode 로드 밸런서 컨트롤러는 구성하는 대상 그룹을 완전히 제어한다고 가정합니다. 대상 그룹이 컨트롤러에 등록되면 클러스터에 현재 없는 대상은 등록 해제합니다. 이는 대상 그룹이 해당 클러스터가 관리하는 대상의 정확한 집합을 반영하도록 보장합니다.

MultiCluster 지원을 활성화하면 이 동작이 변경됩니다. MultiCluster 지원이 활성화된 대상 그룹은 여러 Kubernetes 클러스터와 연결되거나 다른 소스의 임의 대상을 지원할 수 있어요. 각 클러스터는 다른 클러스터나 소스에 속한 대상을 등록 해제하는 대신 자신이 소유한 대상만 등록·등록 해제합니다.

출처: 문서

본문

작동 방식

MultiCluster 지원이 활성화되면 각 클러스터는 자신이 관리하는 대상 집합을 추적하고 공유 대상 그룹에서 해당 대상만 조정(reconcile)합니다. Amazon EKS Auto Mode는 각 클러스터의 추적 대상(eks-lbc-targets-라는 이름의 Kubernetes ConfigMap)을 로드 밸런서 리소스와 같은 네임스페이스에 저장합니다.

Note: 업스트림 AWS Load Balancer Controller는 이 상태를 aws-lbc-targets- 접두사의 ConfigMap에 저장합니다. Amazon EKS Auto Mode에서는 접두사가 eks-lbc-targets-이므로, 업스트림 지침을 따를 때 eks-lbc-targets- ConfigMap을 확인하세요.

로드 밸런서는 모든 등록된 대상에 트래픽을 균등하게 분산합니다. 컨트롤러는 클러스터 간 가중 분산을 지원하지 않습니다. MultiCluster 지원은 ip와 instance 대상 유형 모두에서 작동합니다.

MultiCluster 지원 활성화

리소스 유형에 따라 다음 방법 중 하나로 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 Auto Mode 고려 사항

AWS Load Balancer Controller GitHub 웹사이트의 업스트림 MultiCluster Target Groups 가이드는 두 클러스터 간 대상 그룹 하나를 공유하는 과정을 다룹니다. 다중 클러스터 아키텍처에 대한 더 넓은 논의는 AWS Blog의 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를 허용 목록으로 제한하므로 커스텀 태그는 access denied 오류를 일으키고 컨트롤러가 이를 조정할 수 없어요. 이로 인해 Ingress finalizer가 삭제 시 멈출 수 있습니다.
  • 대상 그룹은 단일 VPC로 범위가 지정되므로 모든 참여 클러스터는 같은 VPC에 있어야 합니다.

예시

하나의 대상 그룹을 두 클러스터 간에 공유하는 단계별 과정 — 한 클러스터가 Ingress를 통해 로드 밸런서를 소유하고 다른 클러스터가 TargetGroupBinding으로 합류 — 은 Share a target group across two clusters를 참고하세요.

더 알아보기 (Learn more)