K8s

Ingress(인그레스)란 - K8s

Zino. 2024. 11. 26. 15:14

K8s에서 Ingress라는 리소스는 http와 https 요청을 특정 서비스로 라우팅하는 기능을 제공한다.

외부에서 K8s 클러스터 내부로의 네트워크 요청을 처리해준다.

---

Make your HTTP (or HTTPS) network service available using a protocol-aware configuration mechanism, that understands web concepts like URIs, hostnames, paths, and more. The Ingress concept lets you map traffic to different backends based on rules you define via the Kubernetes API.

--- > K8s(https://kubernetes.io/docs/concepts/services-networking/ingress/)

 

Ingress

Make your HTTP (or HTTPS) network service available using a protocol-aware configuration mechanism, that understands web concepts like URIs, hostnames, paths, and more. The Ingress concept lets you map traffic to different backends based on rules you defin

kubernetes.io

쿠버네티스 공식 문서에서는 ingress를 위처럼 정의한다.

이렇게만 보면 무슨역할을 하는지 이해하기 힘들다.

실제 예시를 들면 쉽게 이해된다.

 

웹페이지를 제공하는 서비스, api를 제공(데이터 제공)하는 서비스 두개가 존재한다고 해보자

우선 두 서비스를 각각 NodePort로 제공하는 경우, 즉 ingress를 사용하지 않는 경우를 가정해보자.

(ingerss를 써야하는 이유를 확실히 알아야한다)

클러스터 내 특정 노드의 IP가 111.111.111.11 인 경우 각 서비스에 포트를 하나씩 부여해야한다.

각 서비스의 포트가 30007, 30008이라 하면

http://111.111.111.11:30007

http://111.111.111.11:30008

이렇게 두개의 포트를 사용해야한다.

 

서비스가 두개인 경우는 포트 두개정도야 사용해도 되겠지만 더 많아지면 포트를 낭비하게 된다.

또한 사용자는 관련이 있는 두 서비스를 사용할 때 도메인을 사용하지 못하고 포트번호를 사용해야해서 불편함이 늘어난다.

 

여기서 Ingress를 사용하게 되면

http://111.111.111.11/web

http://111.111.111.11/api

이런식으로 각 서비스에 접근이 가능하다.

ingerss가 내부적으로 /web 과 /api의 경로를 알아서 나눠준다.

 

이러한 방식으로 규칙을 만들어서 클러스터 외부에서 내부로의 네트워크 접근을 처리할 수 있다.

 

다음엔 ingress의 실제 적용에 대해 작성할 예정이다.

 

'K8s' 카테고리의 다른 글

Kubernetes 주요 리소스 정리  (0) 2025.05.14
init container - 초기화 컨테이너  (0) 2025.04.24
쿠버네티스(K8s) GPU 사용하기  (3) 2024.10.31