커스텀 인그레스 컨트롤러 사용


이 페이지에서는 Google Kubernetes Engine(GKE)에서 커스텀 인그레스 컨트롤러를 사용하는 방법을 설명합니다.

HttpLoadBalancing 부가기능이 사용 설정된 커스텀 인그레스 컨트롤러 사용

HttpLoadBalancing 부가기능을 사용 중지하여 nginx-ingress와 같은 커스텀 인그레스 컨트롤러를 실행할 수 있습니다. 이렇게 하면 GKE 인그레스 컨트롤러가 인그레스 리소스를 처리하지 못합니다.

HttpLoadBalancing 부가기능이 사용 설정된 커스텀 인그레스 컨트롤러를 실행하려면(예: 하위 집합Private Service Connect와 같은 기능 사용) 다음 방법 중 하나를 사용할 수 있습니다.

프로세스가 실수로 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-classtrue로 설정된 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 인그레스 컨트롤러 동작을 참조하세요.

다음 단계