인그레스란?
클러스터 외부에서 안에 있는 파드에 접근할 때 사용하는 방법
서비스와의 차이점은 주로 L7영역의 통신을 담당해서 처리한다는 것이다.
인그레스 개념
- 클러스터 외부에서 안으로 접근하는 요청들을 어떻게 처리할지 정의해둔 규칙 모음
- 클러스터 외부에서 접근해야 할 URL을 사용할 수 있도록 하고, 트래픽 로드밸런싱, SSL인증서 처리, 도메인 기반 가상 호스팅 등을 제공
- 인그레스 자체는 이런 규칙들을 정의해둔 자원이고, 실제로 동작시키는 것은 인그레스 컨트롤러이다.
- 클라우드 서비스를 사용하면 별다른 설정 없이 자체 로드밸런서 서비스와 연동해서 인그레스 사용할 수 있다.
- 클라우드 서비스를 사용하지 않고 직접 쿠버네티스 클러스터를 구축해서 사용한다면 인그레스 컨트롤러를 직접 인그레스와 연동해야한다.
- 이때 가장 많이 사용하는 도구는 쿠버네티스에서 제공하는 ingress-nginx이다.
- ingress-nginx컨트롤러는 인그레스에 설정한 내용을 nginx환경 설정으로 변경해서 nginx에 적용한다.
ingress-nginx컨트롤러
- 인그레스에서 설정한 내용대로 동작하는 실제 주체는 인그레스 컨트롤러이다.
- 인그레스 컨트롤러는 여러 가지가 있지만 쿠버네티스가 공식적으로 제공하는 것은 앞에서 소개한 구글 컴퓨트엔진용 ingress-gce와 nginx용 ingress-nginx이다.
인그레스 SSL 설정하기
- 인그레스를 이용하면 요청으로 들어오는 트래픽에 다양한 설정을 할 수 있다.
- HTTPS요청을 처리할 때 가장 많이 사용하는 SSL 설정을 알아보겠다.
- 인그레스로 SSL인증서를 설정하면 파드 각각에 따로 설정할 필요가 없어 편하다.
- 기한이 만료됐을 때도 인그레스에서만 인증서를 업데이트하면 된다.
- 신뢰받은 인증 기관인 CA에 인증서 발급을 요청하면 관리하는 키와 인증서로 서명한 인증서를 발급해준다.
- 발급받은 인증서를 서버에 설정하면 웹브라우저에서 통신할 때 서버에 있는 인증서가 유효한 인증서인지 확인한 후 SSL통신을 한다.
- 시크릿은 쿠버네티스 내부에서 보안이 필요한 설정들을 다룰 때 사용한다.
'클라우드 > Kubernetes(쿠버네티스)' 카테고리의 다른 글
[쿠버네티스] 컨피그맵 (0) | 2021.06.09 |
---|---|
[쿠버네티스] 레이블과 애너테이션 (0) | 2021.06.09 |
[쿠버네티스] 서비스 (0) | 2021.06.07 |
[쿠버네티스] 컨트롤러(데몬세트, 스테이트풀세트, 잡, 크론잡) (0) | 2021.06.06 |
[쿠버네티스] 컨트롤러(레플리케이션 컨트롤러, 레플리카세트, 디플로이먼트) (0) | 2021.06.05 |