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 접속 주소로 접속을 하면 아래와 같은 화면이 나온다. image

해당 화면은 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 가 아닌 정상적인 화면이 출력되어야 한다.

결과 화면 : image