[Kubernetes] Ingress와 Nginx-ingress에 대해 알아보자

GoodCoder·2023년 6월 11일
0

쿠버네티스개념

목록 보기
6/6

Intro

우리는 앞서 Deployment를 구성하는 방법에 대해 알아보았다! 이제부터는 우리가 잘 알고 사용하는 Nginx를 이용하여 Reverse Proxy를 하려고 한다!

Main

먼저 Nginx에 대해서 간단하게 확인하고 넘어가자! (이후에 네트워크 CS에서 자세하게 다뤄보자!)

  • Nginx는 경량 웹 서버이다.
  • Nginx를 사용하는 이유는 Reverse Proxy 때문이다. (로드 밸런싱)
  • Nginx Plus라는 것도 있는데 솔직히 말하면 그냥 EC2 여러개 쓰는게 훠어어얼씬 나을듯 싶다. (주관적인 생각이다..)

그러면 다시 돌아와서 기존 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를 이용하여 Reverse Proxy를 진행한다.

참고로 아래와 같은 코드를 치면 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 등 전부 다르다.)

profile
항상 끊임없이 노력하는 개발자입니다.

0개의 댓글