[쿠버네티스 기초다지기] 04장 - 업데이트, 단계적인 배포, 오토스케일링
04장 업데이트, 단계적인 배포, 오토스케일링
스케일업하기
- scale 커맨드로 스케일 업
- 복제 컨트롤러와 디플로이먼트 추상 요소 모두에 대해 동작
kubectl scale --replicas=3 rc/node-js-scale
테스트, 릴리스, 전환
- A/B 테스트
- sessionAffinity 사용하는 새로운 서비스 생성
- sessionAffinity 를 ClientIP로 설정
- sessionAffinity : ClientIP
- 클라이언트를 동일한 백엔드 파드로 전달할 수 있게 함
- 동일한 서비스 레이블 설정
- 셀렉터를 기반으로 하여 서비스 풀에 추가됨
- 새로운 버전이 예상대로 동작하는지 확인하기 위해 livenessProbe, readinessProbe 정의
애플리케이션 오토스케일링
수평 파드 오토스케일러
- 애플리케이션을 스케일링하는 임계치를 자동으로 설정하는 방법을 제공
- 현재 CPU에 대해서만 지원
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: node-js-scale
spec:
minReplicas: 1
maxReplicas: 3
scaleTargetRef:
apiVersion: v1
kind: ReplicationController
name: node-js-scale
targetCPUUtilizationPercentage: 20
- 커맨드 라인에서의 사용
kubectl autoscale rc/node-js-scale --min=1 --max=3 --cpu-percent=20
- CPU사용이 20%가 넘으면 파드를 최대 3개로 스케일업
- CPU 사용률 확인
kubectl get hpa
클러스터 스케일링
- 환경 변수로 지정
- GCE에서 클러스터 스케일업
- Instance groups 에서 그룹 수정으로 인스턴스 개수 변경
- 오토스케일링과 스케일다운 전환 시 스케줄링될 공간이 있는지 항상 확인해야 함