여기서 사용되는 예제는 아래 블로그의 예제를 응용하여 적용하였다.
162. [Kubernetes] 1편 : 쿠버네티스 Ingress 개념 및 사용 방법, 온-프레미스 환경에서 Ingress 구축하기
단, 현재의 k8s api 버전 스펙에 맞지 않는 경우가 있고, Nginx-ingress 역시 위 예제에서 사용되는 것과는 차이가 있다.(기본 서비스를 생성해준다.)
그래서 아래 노트 박스에서와 같이 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
이 외 개념 및 원리 설명은 원본 블로그에 잘 설명되어 있으니, 비교 참조하여 보면 도움이 될 것이다.
Add Comment