쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

IngressClass를 생성하여 Application Load Balancer 구성

포커스 모드
IngressClass를 생성하여 Application Load Balancer 구성 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

EKS Auto Mode는 클러스터 앱을 인터넷에 노출하는 등 로드 밸런싱을 위한 일상적인 작업을 자동화합니다.

AWS에서는 Application Load Balancer(ALB)를 사용하여 HTTP 및 HTTPS 트래픽을 제공할 것을 제안합니다. Application Load Balancer는 요청의 내용을 기반으로 요청을 라우팅할 수 있습니다. Application Load Balancer에 대한 자세한 내용은 What is Elastic Load Balancing?을 참조하세요.

EKS Auto Mode는 Application Load Balancer(ALB)를 생성하고 구성합니다. 예를 들어 EKS Auto Mode는 Ingress Kubernetes 객체를 생성할 때 로드 밸런서를 생성하고 클러스터 워크로드로 트래픽을 라우팅하도록 구성합니다.

개요

  1. SSL/TLS 및 VPC 서브넷에 사용할 인증서와 같은 AWS 특정 구성 값을 지정하여 IngressClassParams 리소스를 생성합니다.

  2. EKS Auto Mode가 IngressClass 리소스의 컨트롤러가 되도록 지정하는 리소스를 생성합니다.

  3. HTTP 경로 및 포트를 클러스터 워크로드와 연결하는 Ingress 리소스를 생성합니다.

  4. EKS Auto Mode는 Ingress 리소스에 지정된 로드 밸런서 구성을 사용하여 IngressClassParams 리소스에 지정된 워크로드를 가리키는 Application Load Balancer를 생성합니다.

사전 조건

  • Amazon EKS 클러스터에서 활성화된 EKS Auto Mode

  • 클러스터에 연결하도록 구성된 Kubectl

    • kubectl apply -f <filename>를 사용하여 아래의 샘플 구성 YAML 파일을 클러스터에 적용할 수 있습니다.

1단계: IngressClassParams 생성

IngressClassParams 객체를 생성하여 Application Load Balancer에 대한 AWS 특정 구성 옵션을 지정합니다. 아래 참조를 사용하여 샘플 YAML 파일을 업데이트합니다.

IngressClassParams 리소스에 대해 설정한 이름을 기록해 둡니다. 다음 단계에서 이 이름이 필요합니다.

apiVersion: eks.amazonaws.com/v1 kind: IngressClassParams metadata: name: alb spec: scheme: internet-facing

2단계: IngressClass 생성

IngressClassParams 리소스에 설정된 AWS 특정 구성 값을 참조하는 IngressClass를 생성합니다. IngressClass의 이름을 기록해 둡니다. 이 예제에서는 IngressClassIngressClassParams의 이름이 모두 alb입니다.

is-default-class 주석을 사용하여 Ingress 리소스가 기본적으로 이 클래스를 사용해야 하는지 여부를 제어합니다.

apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb annotations: # Use this annotation to set an IngressClass as Default # If an Ingress doesn't specify a class, it will use the Default ingressclass.kubernetes.io/is-default-class: "true" spec: # Configures the IngressClass to use EKS Auto Mode controller: eks.amazonaws.com/alb parameters: apiGroup: eks.amazonaws.com kind: IngressClassParams # Use the name of the IngressClassParams set in the previous step name: alb

구성 옵션에 대한 자세한 내용은 IngressClassParams 참조 섹션을 참조하세요.

3단계: 수신 생성

Ingress 리소스를 생성합니다. 이 리소스의 목적은 Application Load Balancer의 경로 및 포트를 클러스터의 워크로드와 연결하는 것입니다.

이 리소스 구성에 대한 자세한 내용은 Kubernetes 설명서의 Ingress 섹션을 참조하세요.

apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: 2048-ingress spec: # this matches the name of IngressClass. # this can be omitted if you have a default ingressClass in cluster: the one with ingressclass.kubernetes.io/is-default-class: "true" annotation ingressClassName: alb rules: - http: paths: - path: /* pathType: ImplementationSpecific backend: service: name: <your-service> port: number: 80

4단계: 상태 확인

kubectl을 사용하여 Ingress의 상태를 찾습니다. 로드 밸런서를 사용할 수 있기까지 몇 분 정도 걸릴 수 있습니다.

이전 단계에서 설정한 Ingress 리소스의 이름을 사용합니다.

kubectl get ingress <ingress-name>

리소스가 준비되면 로드 밸런서의 도메인 이름을 검색합니다.

kubectl get ingress api-ingress -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'

웹 브라우저에서 서비스를 보려면 Ingress 복구에 지정된 포트와 경로를 검토합니다.

5단계: 정리

로드 밸런서를 정리하려면 다음 명령을 사용합니다.

kubectl delete ingress <ingress-name>

EKS Auto Mode는 AWS 계정에서 연결된 로드 밸런서를 자동으로 삭제합니다.

IngressClassParams 참조

아래 표는 일반적으로 사용되는 구성 옵션에 대한 빠른 참조입니다.

필드 설명 예제 값

scheme

ALB가 내부인지 인터넷 연결인지를 정의

internet-facing

namespaceSelector

이 IngressClass를 사용할 수 있는 네임스페이스 제한

environment: prod

group.name

여러 수신을 그룹화하여 단일 ALB 공유

retail-apps

ipAddressType

ALB의 IP 주소 유형 설정

dualstack

subnets.ids

ALB 배포를 위한 서브넷 ID 목록

subnet-xxxx, subnet-yyyy

subnets.tags

필터에 태그를 지정하여 ALB의 서브넷 선택

Environment: prod

certificateARNs

사용할 SSL 인증서의 ARN

arn:aws:acm:region:account:certificate/id

tags

AWS 리소스에 대한 사용자 지정 태그

Environment: prod, Team: platform

loadBalancerAttributes

로드 밸런서별 속성

idle_timeout.timeout_seconds: 60

고려 사항

  • IngressClass에서 주석을 사용하여 EKS Auto Mode로 로드 밸런서를 구성할 수 없습니다.

  • Kubernetes에서 AWS 로드 밸런서 리소스로 태그 전파를 활성화하려면 클러스터 IAM 역할을 업데이트해야 합니다. 자세한 내용은 EKS Auto 리소스에 대한 사용자 지정 AWS 태그 단원을 참조하십시오.

  • EKS Auto Mode 또는 자체 관리형 AWS 로드 밸런서 컨트롤러와 리소스를 연결하는 방법에 대한 자세한 내용은 마이그레이션 참조 섹션을 참조하세요.

  • 로드 밸런서 관련 문제 해결에 대한 자세한 내용은 EKS Auto Mode 문제 해결 섹션을 참조하세요.

  • EKS Auto Mode의 로드 밸런싱 기능 사용에 대한 자세한 고려 사항은 로드 밸런싱 섹션을 참조하세요.

다음 표에서는 EKS Auto Mode에 대한 IngressClassParams, Ingress 주석, TargetGroupBinding 구성의 변경 사항을 자세히 비교합니다. 이 표에서는 API 버전 변경, 사용 중단된 기능, 업데이트된 파라미터 이름을 포함하여 EKS Auto Mode의 로드 밸런싱 기능과 오픈 소스 로드 밸런서 컨트롤러 간의 주요 차이점을 강조합니다.

IngressClassParams

이전 New 설명

elbv2.k8s.aws/v1beta1

eks.amazonaws.com/v1

API 버전 변경

spec.certificateArn

spec.certificateARNs

여러 인증서 ARN 지원

spec.subnets.tags

spec.subnets.matchTags

서브넷 일치 스키마가 변경됨

spec.listeners.listenerAttributes

spec.listeners.attributes

간소화된 속성 이름 지정

수신 주석

이전 New 설명

kubernetes.io/ingress.class

지원되지 않음

수신 객체에서 spec.ingressClassName 사용

alb.ingress.kubernetes.io/group.name

지원되지 않음

IngressClass에서만 그룹 지정

alb.ingress.kubernetes.io/waf-acl-id

지원되지 않음

대신 WAF v2 사용

alb.ingress.kubernetes.io/web-acl-id

지원되지 않음

대신 WAF v2 사용

alb.ingress.kubernetes.io/shield-advanced-protection

지원되지 않음

Shield 통합 비활성화됨

TargetGroupBinding

이전 New 설명

elbv2.k8s.aws/v1beta1

eks.amazonaws.com/v1

API 버전 변경

spec.targetType 선택 사항

spec.targetType 필수

명시적 대상 유형 사양

spec.networking.ingress.from

지원되지 않음

보안 그룹 없이 더 이상 NLB를 지원하지 않음

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.