-
K8S Nginx-controller를 이용한 Ingress 구성 정리K8S 2021. 7. 9. 10:38
인그레스 컨트롤러에는 다양한 종류가 있다.
GCE(구글 http load balancer) nginx, contour, haproxy, traefik, istio등이 있다.
여기서 GCE와 nginx는 쿠버네티스 프로젝트에 의해 유지보수된다.
이번 포스팅은 nginx controller를 이용한 ingress 구성을 알아본다.
Ingress를 구현하기 위해서는 다음과 같은 것들이 필요하다.
1. Nginx-ingress-controller
2. Configmap
nginx의 원하는 기능(error-log-path, keep-alive, ssl-protocols등)을 추가할 때는
configmap을 이용하여 image와 별도로 추가한다.
하지만 다음처럼 아무것도 없어도 상관없으며 이는 나중에 configuration을 쉽게 하기 위해 만든다.
3. Service
그리고 인그레스 컨트롤러를 expose할 서비스가 필요하다.
4. ServiceAccount
인그레스 컨트롤러는 인그레스 리소스를 위한 쿠버네티스 클러스터를 모니터링이 필요하다.
즉 kube-API server와 통신해야 하므로 serviceacount가 필요하다.
그리고 이에 대한 롤과 롤 바인딩이 필요하다.
여기까지 구성이 ingress 구현을 위한 nginx-controller 구성이다.
5. Ingress
마지막으로 필요한 게 Ingress resourse다.
인그레스 컨트롤러에 적용할 규칙과 설정을 지정할 수 있다.
예를 들어, 들어온 경로에 따라 트래픽을 원하는 곳으로 보낼 수 있다.
1) path에 따라 경로를 구분하는 경우
2) host에 따라 경로를 구분하는 경우
만약 호스트 entry가 없다면, 모든 호스트(*)를 의미한다.
반응형'K8S' 카테고리의 다른 글
NFS 구축 및 pv, pvc 생성과 K8S MySQL Statefulset 마운트 (0) 2021.07.15 Istioctl를 이용한 istio 설치 (0) 2021.07.11 K8S: Service Networking 정리 (0) 2021.07.07 K8S Pod Networking과 Weave CNI 정리 (0) 2021.07.07 K8S ArgoCD 설치 (feat. Helm3) (0) 2021.06.25