Ingress 노출 - TheOpenCloudEngine/uEngine-cloud GitHub Wiki
1. ingress.yaml 파일 작성
아래와 같은 내용으로 ingress.yaml 파일을 생성한다.
# ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: web-ingress
namespace: default
spec:
rules:
- host: blue.example.com
http:
paths:
- path: /courses
backend:
serviceName: class-course
servicePort: 8080
- path: /schedules
backend:
serviceName: class-calendar
servicePort: 8088
- host: green.example.com
http:
paths:
- backend:
serviceName: credit
servicePort: 8080
생성한 ingress.yaml을 기반으로 kubectl로 객체를 생성해준다.
> kubectl create -f ingress.yaml
# ingress.extensions "web-ingress" created
> kubectl get ingress
# NAME HOSTS ADDRESS PORTS AGE
# web-ingress blue.example.com,green.example.com 80 9s
* 정상적으로 구동된 것을 확인 할 수 있다.
2. 기본 nginx ingress provider 설치
이전에 사용한 Helm을 이용하여 설치한다.
> helm install --name nginx-ingress stable/nginx-ingress --set rbac.create=true
설치가 완료되었다면 ingress의 접속주소를 확인하여야 한다.
> kubectl get svc nginx-ingress-controller
# NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
# nginx-ingress-controller LoadBalancer [Cluster-Ip] [EXTERNAL-IP] 80:31686/TCP,443:32729/TCP 1m
* 해당 External-IP가 ingress 접속 주소이다.
Ingress 접속 주소로 접속을 하면 아래와 같은 화면이 나온다.
해당 화면은 ingress.yaml 파일 내용을 확인하면
spec:
rules:
- host: blue.example.com
host가 blue.example.com 으로 설정되어 있는것을 확인 할 수 있다.
따라서, hosts 파일을 수정하여준다.
3. hosts 수정
hosts 파일을 수정하여 blue.example.com 으로 IP가 포워딩되도록 수정하여준다.
Linux 환경: /etc/hosts
Windows 환경: C:₩Windows₩System32₩drivers₩etc₩hosts.txt
* 윈도우 설치경로에 따라 다를수 있음
e.g) xx.xx.xx.xx blue.example.com green.example.com
4. 확인
hosts 파일을 수정하였다면 default backend - 404 가 아닌 정상적인 화면이 출력되어야 한다.
결과 화면 :