ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [K8s] StatefulSet, Ingress, Autoscaler
    도커 | 쿠버네티스 2023. 2. 23. 18:34

    StatefulSet Controller

    특징

       Pod를 순차적으로 생성, 삭제 <-> Replica Set의 순서없이 진행

       Ordinal Index 이름으로 Pod를 생성 <-> Replica Set의 경우 랜덤으로 이름 설정

       PVC, PV 동적생성 (volumeClaimTemplates) <-> Replica Set의 경우 수동생성

       Pod와 PV을 자동으로 동일한 노드에 생성

       Pod가 삭제되어도 PV를 자동으로 삭제하지 않는다

     

    예시

       Stateless Application : Web Server -> ReplicaSet

       Stateful Application : Database -> StatefulSet

     

    Ingress

    기능

       서비스 로드밸런스 - 사용자가 정의해둔 룰의 url의 파라미터에 따라 요청하는 웹페이지로 요청을 중계

       카나리 업그레이드 - 새로운 버전과 구버전을 하나의 로드밸런스에 연결시켜 혼합 운영

          -> @header , @ weight:10%과 같은 어노테이션을 통해 좀 더 세부적인 설정이 가능

       HTTPS - 보안 프로토콜을 적용

     

    Ingress Controller

       ingress controller를 위한 namespace에 Ingress controller Pod를 생성하여 서버 Pod와 사용자 사이에서 중계 

     

    Ingress Controller 종류

       NGINX

       Kong

     

    Autoscaler

    HPA( Horizontal Pod Autoscaler )

       Pod의 리소스 사용량에 따라 Pod를 Scale Out, Scale In을 합니다.

       Pod의 역할과 관련없이 증감시키기 때문에 Stateless App에 적용하는 것이 적합합니다.

    VPA( Vertical Pod Autoscaler )

       Pod의 리소스 사용량에 따라 Pod를 Scale Up을 합니다

       Pod의 역할이 있는 Stateful App에 적용하는 것이 적합합니다.

    CA(Cluster Autoscaler)

       Pod를 생성하기에 적절한 노드가 없을 때 노드를 추가로 생성합니다. 노드의 경우 하나하나가 서버와 같으므로 클라우드를 사용하고 있을 때 사용합니다.

    리소스 사용량 정보 수집은 Metrics Server에서 이뤄지는데 kubelet에서 정보가 보내집니다. 좀 더 많은 리소스 사용에 대한 Metric을 사용하고 싶을 경우 오픈소스 Prometheus를 사용하여 수집하고 이용할 수 있습니다.

    댓글

Designed by Tistory.