< 이미지 출처: https://subicura.com/k8s/guide/ingress.html#ingress-만들기 >

                                     < 이미지 출처: [<https://subicura.com/k8s/guide/ingress.html#ingress-만들기>](<https://subicura.com/k8s/guide/ingress.html#ingress-%E1%84%86%E1%85%A1%E1%86%AB%E1%84%83%E1%85%B3%E1%86%AF%E1%84%80%E1%85%B5>) >

개요

안녕하세요😄

저는 최근에 쿠버네티스의 중요성을 깨닫고 관련 이론들을 하나씩 공부하고 있는데요!

가장 먼저 마주치게 된 의문점이 하나 있었습니다.

인그레스(Ingress)와 서비스(Service) 모두 외부에서 특정 팟(Pod)으로 접근할 수 있도록 하는 공통점이 있습니다.

그러면 언제는 인그레스를 생성하여 배포하고, 또 언제는 서비스를 사용해야 하는가? 두 컴포넌트의 차이점은 무엇일까?

처음 공부하는 입장에서, 두 컴포넌트가 굉장히 혼란스럽더라구요😥

그래서 이번 시간에 통해 두 컴포넌트의 관계를 살펴보고, 어떤 상황에서 적절하게 컴포넌트를 사용할 수 있을 지 고민해봅시다!

인그레스와 서비스

인그레스 또는 서비스 둘 중 어느 하나를 이용하더라도, 팟이 속한 클러스터 외부에서 내부로 접근이 가능합니다.

(물론, 서비스의 타입이 ClusterIP인 경우는 클러스터 내부에서만 통신이 가능합니다.)

그렇다면, 인그레스와 서비스의 가장 큰 차이점은 무엇일까요?

바로, 로드 밸런싱 대상입니다!

인그레스L7 로드 밸런서를 통해, 클러스터 외부에서 들어온 트래픽을 적절한 서비스에 전송하는 역할을 수행합니다.

한편, 서비스L4 로드 밸런서를 통해, 서비스에 들어온 트래픽을 여러 개의 팟 중 적합한 곳으로 전송하는 역할을 수행합니다. (물론, 서비스에 포함된 팟의 갯수가 한 개일 수도 있습니다.)

결과적으로, 인그레스는 서비스 대비 상위 계층에 속한다고 볼 수 있어요.

아래의 그림을 보면, 이해가 더 쉬울 것 같습니다🦾

                                         < 이미지 출처: https://yozm.wishket.com/magazine/detail/1916/ >

                                     < 이미지 출처: [<https://yozm.wishket.com/magazine/detail/1916/>](<https://yozm.wishket.com/magazine/detail/1916/>) >