이 페이지에서는 Google Kubernetes Engine(GKE)에서 커스텀 인그레스 컨트롤러를 사용하는 방법을 설명합니다.
HttpLoadBalancing
부가기능이 사용 설정된 커스텀 인그레스 컨트롤러 사용
HttpLoadBalancing
부가기능을 사용 중지하여 nginx-ingress
와 같은 커스텀 인그레스 컨트롤러를 실행할 수 있습니다. 이렇게 하면 GKE 인그레스 컨트롤러가 인그레스 리소스를 처리하지 못합니다.
HttpLoadBalancing
부가기능이 사용 설정된 커스텀 인그레스 컨트롤러를 실행하려면(예: 하위 집합 및Private Service Connect와 같은 기능 사용) 다음 방법 중 하나를 사용할 수 있습니다.
- 인그레스 매니페스트에서
kubernetes.io/ingress.class
주석을 설정합니다. 이 구성은 모든 GKE 버전을 실행하는 클러스터에서 지원됩니다. ingressClassName
필드 구성- 기본 인그레스 클래스 구성
프로세스가 실수로 spec.ingressClassName
을 덮어쓰지 않도록 해야 합니다. spec.IngressClassName
을 유효한 값에서 빈 문자열(""
)로 변경하는 업데이트 작업은 GKE 인그레스 컨트롤러가 인그레스를 처리하도록 합니다.
ingressClassName
필드 구성
인그레스 매니페스트에서 ingressClassName
필드를 설정하여 커스텀 인그레스 컨트롤러를 사용할 수 있습니다. 다음 매니페스트는 nginx
인그레스 컨트롤러를 지정하는 인그레스를 설명합니다.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: cafe-ingress
spec:
ingressClassName: nginx
tls:
- hosts:
- cafe.example.com
secretName: cafe-secret
rules:
- host: cafe.example.com
이 구성은 GKE 버전 1.18~1.21의 인그레스 v1beta1
API 및 GKE 버전 1.19 이상의 인그레스 v1
API에서 지원됩니다.
기본 인그레스 클래스 구성
주석 ingressclass.kubernetes.io/is-default-class
가 true
로 설정된 IngressClass
리소스를 만들어 클러스터의 모든 인그레스 리소스에 대해 기본 인그레스 클래스를 구성할 수 있습니다.
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: nginx-public
annotations:
ingressclass.kubernetes.io/is-default-class: "true"
spec:
controller: k8s.io/ingress-nginx
이 구성은 GKE 버전 1.19 이상을 실행하는 클러스터에서 사용할 수 있습니다.
GKE 인그레스 컨트롤러 동작 요약
GKE 버전 1.18 이상을 실행하는 클러스터의 경우 GKE 인그레스 컨트롤러가 인그레스를 처리하는지 여부는 kubernetes.io/ingress.class
주석의 값과 인그레스 매니페스트의 ingressClassName
필드에 따라 다릅니다. 자세한 내용은 GKE 인그레스 컨트롤러 동작을 참조하세요.
다음 단계
- Google Cloud의 부하 분산에 대해 자세히 알아보기
- 내부 애플리케이션 부하 분산기용 인그레스를 구성하는 방법 알아보기
- 외부 애플리케이션 부하 분산기용 인그레스를 구성하는 방법 알아보기
- NGNIX 인그레스를 사용하여 GKE 인그레스 구현