우리는 앞서 Deployment를 구성하는 방법에 대해 알아보았다! 이제부터는 우리가 잘 알고 사용하는 Nginx를 이용하여 Reverse Proxy를 하려고 한다!
먼저 Nginx에 대해서 간단하게 확인하고 넘어가자! (이후에 네트워크 CS에서 자세하게 다뤄보자!)
그러면 다시 돌아와서 기존 Docker에는 Nginx를 사용하였지만 Kubernetes에서는 전용 Nginx가 존재하는데 이것이 바로 Nginx-ingress이다. (Nginx와 Nginx-ingress의 차이는 없다. 단지 쿠버네티스 클러스터 안에서 작동하도록 모양만 변형한 것이다.)
그렇다면 뒤에 붙는 ingress는 과연 뭘 의미하는걸까?
Nginx-ingress는 ingress controller 역할을 수행하는데 이것은 yaml파일 내 kind:ingress를 감지하고 트래픽을 처리하는 일을 한다. 보통 ingress.yaml과 같은 매니패스트 파일을 생성하여 Reverse Proxy(Load Balance)를 한다.
위의 사진은 필자가 만든 아키텍쳐의 일부분인데 플로우는 다음과 같다.
참고로 아래와 같은 코드를 치면 nginx-ingress.yaml을 간단하게 설치할 수 있다.(AWS 기준)
curl -o ingress-nginx.yaml https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.6.4/deploy/static/provider/baremetal/deploy.yaml
Nginx나 Nginx-ingress나 별 차이가 없다.
Ingress controller는 외부에서 요청이 날라올 때 내부에서 어떻게 받을지를 관할한다.
Cloud 환경에 따라 다르게 설치해야한다. (AWS, AZURE 등 전부 다르다.)