-
[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를 사용하여 수집하고 이용할 수 있습니다.
'도커 | 쿠버네티스' 카테고리의 다른 글
[K8s] 컨트롤러 - DaemonSet, Job, CronJob (0) 2023.01.24 [K8s] 컨트롤러 - Replication Controller, ReplicaSet, Deployment (0) 2023.01.24 Docker image build & Dockerfile (0) 2022.10.29