<한줄 요약>
- Ingress는 HTTP, HTTPS 등 네트워크 Layer 7에 대한 설정을 담당하는 리소스다.
<세줄 요약>
- Ingress의 가장 기본적인 역할은 외부 HTTP 호출에 대한 트래픽을 처리하는 것이다. (예시 : 부하 분산, TLS 종료, 도메인 기반 라우팅 기능 등)
- Ingress는 쿠버네티스 클러스터 내부 서비스에 외부에서 접근 가능한 URL을 부여함으로써 일반 사용자들이 쉽게 접근할 수 있는 통로를 제공한다.
- Ingress에는 그에 맞는 Controller가 존재하며, Ingress Controller는 Ingress에 정의된 트래픽 라우팅 규칙을 보고 라우팅을 수행한다.
<특징>
Ingress 리소스 자체로는 어떠한 프로그램이 작동하는 코드가 아니라 트래픽 처리에 대한 정보를 담고 있는 정의에 가깝다.
예를 들어, 일반 사용자들이 foo.bar.com/account 으로 접속하느냐, foo.bar.com/shopping 으로 접속하느냐에 따라 트래픽을 어디로 이동시킬지 정의하는 것이다.
실제로 외부 트래픽을 Service로 전달하는 주체는 Ingress Controller다.
Ingress는 트래픽 처리를 정의하는 오브젝트!
Ingress Controller는 트래픽 처리를 수행하는 주체!
이미지 출처 : https://kubernetes.io/docs/concepts/services-networking/ingress/#terminology
(foo.bar.com/account 로 가는 트래픽을 정의한다고 했을 때) 클러스터 안의 그림을 자세히 그려보면 다음과 같다.
<만드는 법>
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {Ingress이름}
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: "{도메인}"
http:
paths:
- path: "/{경로}"
pathType: Prefix
backend:
service:
name: {연결할 서비스 이름}
port:
number: {연결할 서비스의 port}
<존재 이유 or 흐름 속 의미>
Ingress는 쿠버네티스는 관리자에게 Layer7에 대한 설정을, 일반 사용자들에게는 쉽게 접근할 수 있는 URL을 제공해준다.
참고 :
쿠버네티스 스터디 <DKOS>
반응형
'Kubernetes' 카테고리의 다른 글
Network Policy (0) | 2023.03.10 |
---|---|
Limit Ranges (0) | 2023.02.11 |
Rolling Update (0) | 2023.02.04 |
ServiceAccount (0) | 2023.01.29 |
Resource requirements(Request & Limit) (0) | 2023.01.22 |