1.2.2.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에 따라 대상 서비스에 라우팅 되는 것을 확인할 수 있습니다.
-
이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.