ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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가 없다면, 모든 호스트(*)를 의미한다. 

     

     

     

    반응형

    댓글

Designed by Tistory.