Ingress Controller는 ExternalName 유형의 서비스로의 요청 라우팅을 지원합니다.
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
댓글