< 이미지 출처: [<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/>) >