Ingress 규칙에 따라 트래픽 분산을 실행하기 위한 리소스
- 제공자(클라우드)에 따라 구현한 Ingress controller마다 기능이 다르다.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: <name>
namespace: <namespace>
labels:
project: <project-name>
spec:
rules:
- host: <...> # Host 헤더가 일치하는 요청만 매칭 (host기준으로 맵핑)
http:
paths:
- pathType: Prefix # /로 시작하는 모든 경로에 매칭
path: /
backend: # order 서비스의 80포트로 포워딩
service:
name: order
port:
number: 80
Ingress Controller가 HTTP Request의 "Host" 헤더 정보를 이용해서 트래픽 전달
rules:
- http:
paths:
- pathType: Prefix
path: /order # /order로 시작하는 모든 경로의 요청에 대해 실행
backend:
service:
name: order
port:
number: 80
- pathType: Prefix
path: /payment # /payment로 시작하는 모든 경로의 요청에 대해 실행
backend:
service:
name: payment
port:
number: 80
spec:
defaultBackend: # Ingress에 정의되지 않는 요청을 받으면 처리한다.
service:
name: order
port:
number: 80
Ingress에 정의되지 않은 요청
정의하지 않은 HOST 헤더 요청을 받은 경우
path 표현식과 일치하지 않는 경우