5.1.3 OCI Native Ingress Controller에서 host 기반 라우팅
DNS에 등록하기
이미 구입한 Domain Name이 있다는 전제하에 설정하는 과정입니다. 테스트를 위해 따로 구입한 Domain Name(thekoguryo.xyz)을 사용하였습니다.
DNS 서비스 설정
도메인 구입처 또는 OCI DNS 서비스에서 위임하여 서비스하는 경우 OCI DNS 서비스에서 사용한 host를 등록합니다.
추가할 레코드를 입력하고 제출합니다.
Record Type: A - IPv4 Address
Name: *.ingress
- 와일드 카드 형식으로 ingress controller가 사용할 서브 Domain Name을 입력합니다.
Address: 매핑할 IP, 여기서는 앞서 만든 OCI Native Ingress Controller의 Load Balancer의 IP 입력
예, GoDaddy DNS 관리화면
DNS 테스트
nslookup 툴로 등록한 DNS를 테스트 해봅니다. 잘 등록된 것을 알 수 있습니다.
$ nslookup *.ingress.thekoguryo.xyz Server: 127.0.0.11 Address: 127.0.0.11#53 Non-authoritative answer: Name: *.ingress.thekoguryo.xyz Address: 158.180.xx.xxx
HOST 기반 라우팅 테스트
HOST 이름에 따라 라우팅 서비스를 달리하는 경우입니다.
테스트를 위한 샘플 앱을 배포합니다. PATH 기반 라우팅 때 사용한 앱을 그대로 사용합니다.
배경 색깔이 다른 두개의 웹페이지를 배포합니다.
kubectl create deployment nginx-blue --image=thekoguryo/nginx-hello:blue kubectl expose deployment nginx-blue --name nginx-blue-svc --port 80 kubectl create deployment nginx-green --image=thekoguryo/nginx-hello:green kubectl expose deployment nginx-green --name nginx-green-svc --port 80
ingress 설정 YAML(
native-ic-ingress-host-basic.yaml
)을 작성합니다.- blue.ingress.thekoguryo.ml 요청은 nginx-blue-svc 로 라우팅
- green.ingress.thekoguryo.ml 요청은 nginx-green-svc로 라우팅
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: native-ic-ingress-host-basic spec: ingressClassName: native-ic-ingress-class rules: - host: blue.ingress.thekoguryo.xyz http: paths: - path: / pathType: Prefix backend: service: name: nginx-blue-svc port: number: 80 - host: green.ingress.thekoguryo.xyz http: paths: - path: / pathType: Prefix backend: service: name: nginx-green-svc port: number: 80
작성한
native-ic-ingress-host-basic.yaml
을 배포합니다.$ kubectl apply -f native-ic-ingress-host-basic.yaml ingress.networking.k8s.io/native-ic-ingress-host-basic created $ kubectl get ingress NAME CLASS HOSTS ADDRESS PORTS AGE native-ic-ingress-host-basic native-ic-ingress-class blue.ingress.thekoguryo.xyz,green.ingress.thekoguryo.xyz 158.180.xx.xxx 80 2m36s
ingress rule에서 적용한 host 명으로 각각 접속하여 결과를 확인합니다.
blue.ingress.thekoguryo.xyz 요청
green.ingress.thekoguryo.xyz 요청
와일드 카드 주소로 DNS에 등록한 Ingress Controller의 Load Balancer를 거쳐 접속한 host의 FQDN에 따라 대상 서비스에 라우팅 되는 것을 확인할 수 있습니다.
이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.