Ingress
인그레스(Ingress)는 K8s 클러스터 외부에서의 요청을 K8s 클러스터 내부의 애플리케이션에 연결하기 위한 API 오브젝트다
대표적인 기능
- 공개 URL과 애플리케이션 매핑
- 복수의 도메인 이름을 가지는 가상 호스트 기능
- 클라이언트의 요청을 여러 파드에 분산
- SSL/TLS 암호화 통신 HTTPS
- 세션 어피니티
공개 URL과 애플리케이션 매핑
- http://abc.sample.com/reservation → 예약 애플리케이션 파드에 전송
- http://abc.sample.com/order → 주문 애플리케이션 파드에 전송
Addon
enable
$ minikube addons enable ingress 💡 After the addon is enabled, please run "minikube tunnel" and your ingress resources would be available at "127.0.0.1" ▪ Using image k8s.gcr.io/ingress-nginx/controller:v1.0.0-beta.3 ▪ Using image k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0 ▪ Using image k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0 🔎 Verifying ingress addon... 🌟 'ingress' 애드온이 활성화되었습니다
list
어노테이션
- kubernetes.io/ingress.class: 'nginx'
- 여러 인그레스 컨트롤러가 k8s 클러스터에서 동작 중인 경우에는 이 어노테이션을 명시적으로 지정할 필요가 있다
- nginx.ingress.kubernetes.io/rewrite-target: /
- 경로를 바꾸도록 하는 어노테이션이다
- 이 설정이 없으면 클라이언트로부터의 요청 경로를 파드에게 그대로 전송하여 FileNotFound 에러로 연결될 수 있다