Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 6 Current »

여기서 사용되는 예제는 아래 블로그의 예제를 응용하여 적용하였다.
162. [Kubernetes] 1편 : 쿠버네티스 Ingress 개념 및 사용 방법, 온-프레미스 환경에서 Ingress 구축하기

단, 현재의 k8s api 버전 스펙에 맞지 않는 경우가 있고, Nginx-ingress 역시 위 예제에서 사용되는 것과는 차이가 있다.(기본 NodePort 서비스를 생성해준다. 그러므로 3.4.1 절의 내용은 이미 생성되어 있을 것이다.)

그래서 아래 노트 박스에서와 같이 yaml들을 수정/보완하여 적용하였다.

위의 예제들을 모두 kubectl apply -f {yaml파일명}을 통하여 생성하고 나면, 아래 명령어를 통해 테스트 할 수 있다.

# 먼저 접속할 포트를 조회.
$ kubectl get svc -n ingress-nginx
NAME                                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             NodePort    10.105.61.45   <none>        80:30270/TCP,443:32129/TCP   17d

# 아래에서 IP는 자신의 환경에 알맞은 노드 IP를 준다.(nodePort로 서비스를 생성하였기 때문에 모든 k8s 노드 IP를 적용할 수 있다.)
$ curl --resolve alicek106.example.com:30270:61.250.122.245 alicek106.example.com:30270/echo-hostname
------------------------
You accessed to path "/"
Access Server URL : http://alicek106.example.com:30270/
Container Hostname : hostname-deployment-6b85d566c5-5k8xv
Container IP : 10.244.2.74
Original IP with Proxy : 10.244.1.1
Static string : /

------------------------
Flask received HTTP header :
X-Scheme: http
X-Forwarded-Host: alicek106.example.com:30270
X-Forwarded-Port: 80
Host: alicek106.example.com:30270
Accept: */*
User-Agent: curl/7.29.0
X-Real-Ip: 10.244.1.1
X-Request-Id: 12503ada71646380531be573f5cfdc3e
X-Forwarded-For: 10.244.1.1
X-Forwarded-Proto: http


remote_addr : 10.244.2.1
------------------------

# 존재하지 않는 endpoint로 접속할 경우, default http backend로 접속된다.
$ curl --resolve alicek106.example.com:30270:61.250.122.245 alicek106.example.com:30270/test
default backend - 404

이 외 개념 및 원리 설명은 원본 블로그에 잘 설명되어 있으니, 비교 참조하여 보면 도움이 될 것이다.

5-ingress-svc-externalip.yaml를 적용하면, 아래와 같이 호출할 수 있다.

# 먼저 접속할 포트를 조회.
$ kubectl get svc -n ingress-nginx
NAME                                 TYPE        CLUSTER-IP       EXTERNAL-IP               PORT(S)        AGE
ingress-nginx-controller             NodePort    10.111.215.109   10.20.2.217,10.20.2.218   80:30813/TCP   32m                   443/TCP                  78m

$ curl --resolve alicek106.example.com:80:10.20.2.217 alicek106.example.com:80/echo-hostname
------------------------
You accessed to path "/"
Access Server URL : http://alicek106.example.com/
Container Hostname : hostname-deployment-6b85d566c5-79dqp
Container IP : 10.244.2.27
Original IP with Proxy : 10.244.2.1
Static string : /

------------------------
Flask received HTTP header :
X-Forwarded-Host: alicek106.example.com
X-Request-Id: bf262fc2c39e9715aa3a304392e055f1
Host: alicek106.example.com
X-Real-Ip: 10.244.2.1
X-Forwarded-For: 10.244.2.1
Accept: */*
X-Forwarded-Port: 80
X-Scheme: http
User-Agent: curl/7.29.0
X-Forwarded-Proto: http


remote_addr : 10.244.2.1
------------------------

$ curl --resolve alicek106.example.com:80:10.20.2.218 alicek106.example.com:80/echo-hostname
------------------------
You accessed to path "/"
Access Server URL : http://alicek106.example.com/
Container Hostname : hostname-deployment-6b85d566c5-r2s5l
Container IP : 10.244.1.25
Original IP with Proxy : 10.244.2.1
Static string : /

------------------------
Flask received HTTP header :
Host: alicek106.example.com
X-Forwarded-For: 10.244.2.1
X-Forwarded-Port: 80
User-Agent: curl/7.29.0
Accept: */*
X-Real-Ip: 10.244.2.1
X-Forwarded-Proto: http
X-Scheme: http
X-Forwarded-Host: alicek106.example.com
X-Request-Id: e040f08ebb0d6d0953edc848e0f8246a


remote_addr : 10.244.1.1
------------------------

  • No labels