참고
인그레스란?
서버 내부 ← 외부 트래픽
실행 중인 디플로이먼트와 서비스에 접근하기 위한 관문(gateway) 역할
인그레스를 사용하지 않을 시
외부 요청을 처리할 수 있는 선택지는 NodePort, ExternalIP
but, 위의 방법들은 일반적으로 L4(TCP, UDP)에서의 요청을 처리하므로 한계가 있음
인그레스를 사용시
L7 요청 처리 가능
쿠베에서 인그레스 사용하기 위해서 yaml에서 ingress 오브젝트를 정의해야하고 ingress controller가 필요함
kind: ingress
kind: Ingress
...
spec:
rules:
host: zeze.com
http:
paths:
path: /api/hostname-service
backend:
serviceName: hostname-service
servicePort: 80
zeze.com(호스트 명)으로 접근하는 네트워크 요청에 대해 ingress 규칙 적용
http 프로토콜을 통해 /api/hostname-service 경로로 접근하는 요청을
hostname-service라는 이름의 service의 80 포트로 전달하라는 뜻
⇒ YAML 파일로부터 ingress 생성해도 아무 일 생기지 않음
ingress는 규칙 정의하는 선언적인 오브젝트일 뿐, 외부 요청을 받는 실제 서버 컨테이너인 ingress controller가 필요함