- 언제 쓰는가?
- 내가 웹을 만들었는데, 같은 도메인의 , path 별로 완벽하게 다른 서비스를 내보내고 싶을때,
- 또한, https 같은 ssl 인증서 설정 또한 하고 싶을때
- ingress 는 사용자가 애플리케이션에 액세스하는ㄴ데 도움이 된다.
- 외부에서 액세스할 수 있는 단일 url 을 이용하여, 다른 서비스로 라우팅하도록 구성할 수 있다.
- ingress 를 k8s 에 내장된 레이어7계층 로드밸런서 정도로 생각해라.
- 다른 쿠버네티스 객체와 마찬가지로, ingress 또한, 노드포트, 혹은 로드밸런서로 딱 한번은 노출해야함을 기억하시오.
- 모든 로드 밸런싱, 인증, ssl 및 url 기반을 수행한다.
In this section, we will take a look at Ingress
다른, 서비스에서의 배포 전략과 마찬가지로,
과정이 필요한데,
nginx , HAProxy, Traefik 등으로, 클러스터에 “배포”하고,
트래픽을 다른 서비스에 라우팅하도록 “**구성”**해야한다.
- 구성에는, url 경로 정의, ssl 인증서 구성 등
같은 방식으로 ingress 에서도 아래와 같이 구현되는데,
- Ingress Controller(수신 컨트롤러)
- Ingress Resources
- 구성한 규칙집합을 인그레스 리소스
- 인그레스 리소스는 파드배포나 서비스생성에 사용하는 것과 같은 정의 파일을 사용해 생성한다.
Ingress Controller
- deployment of ingress controller
- 이제 쿠버네티스 클러스터에는 ingress controller가 기본적으로 제공되지 않는다. 무조건 배포해야한다.
배포 솔루션은 위와 같은데 이 중에, GCE와 nginx 는 k8s 프로젝트에서 유지 관리 하고 있다.