본문 바로가기
네트워크 (LAN,WAN)

외부이름(ExternalName) 서비스를 지원하는 Ingress Controller

by 날으는물고기 2023. 12. 3.

외부이름(ExternalName) 서비스를 지원하는 Ingress Controller

Ingress Controller는 ExternalName 유형의 서비스로의 요청 라우팅을 지원합니다.

Kubernetes - Headless, Endpoint, ExternalName(Service)

ExternalName 서비스는 주로 클러스터 외부의 IP 주소로 해석되는 외부 DNS 이름에 의해 정의됩니다. 이를 통해 Ingress Controller를 사용하여 클러스터 외부의 대상으로 요청을 라우팅할 수 있습니다.

참고: 이 기능은 NGINX Plus에서만 사용할 수 있습니다.

 

전제 조건

ExternalName 서비스를 사용하려면 먼저 ConfigMap을 사용하여 하나 이상의 리졸버를 구성해야 합니다. NGINX Plus는 이러한 리졸버를 사용하여 서비스의 DNS 이름을 해석합니다.

 

다음은 리졸버를 구성하는 예시 ConfigMap입니다.

kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-config
  namespace: nginx-ingress
data:
  resolver-addresses: "10.0.0.10"

추가적인 리졸버 매개변수, DNS 레코드의 캐싱을 포함한 기타 옵션이 사용 가능합니다. 관련된 ConfigMap 섹션을 확인하세요.

 

예시

다음 YAML 파일에서는 이름이 my-service인 ExternalName 서비스를 정의합니다.

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  type: ExternalName
  externalName: my.service.example.com

다음 Ingress 리소스에서는 my-service를 사용합니다.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  ingressClassName: nginx
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 80

이 결과로 NGINX Plus는 "example.com"에 대한 요청을 my.service.example.com 뒤의 IP 주소로 라우팅합니다.

728x90

댓글