⇒ 지정해둔 조건에 따라 파드개수를 자동으로 늘렸다 줄였다 하는 기능
⇒ 지정된 자원을 API가 먼저 확인 / 조건에 맞으면 HPA가 오토스케일링 함.


-kind : HorizontalPodAutoscaler (매니저 역할)
-maxReplicas : 최대 생성 개수
-minReplicas: 최소(기본) 개수
-spec 아래 kind 가 대상 즉 Deployment로 동작하는 파드들이 대상이됨.
-targetCPUUtilizationPercentage: 30% ⇒ CPU사용량이 30% 이상 일때 파드 생성
⇒ CPU사용량 계산법 : 파드에 있는 CPU개수 사용률 합계 / 30 (결과값이 소숫점은 올림으로)
⇒ 템플릿( autoscaling.yaml )이 아닌 명령을 통해서 HPA지정
⇒ 위 두개의 파일 생성 후 동작 / 확인
⇒ unknown ⇒ 0% 으로 표시되기도함
예제파일 및 실행 과정 있는곳.
https://github.com/kubernetes-sigs/metrics-server/issues/1282
https://kubernetes.io/ko/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/
*기본적인 kubeclt 명령어 : 아래 기술문서에 정리되어 있음.
https://kubernetes.io/ko/docs/reference/kubectl/

구조

*파드 :
⇒ 컨테이너의 묶음 ( 목적이 같은 컨테이너를 묶어서 관리, 똑같은 IP 사용 , 포트는 다름 )
*컨트롤러
*서비스
⇒파드에 접속하기 위해서 필요한 기능, 외부에서도 접속 할 수 있도록 해줌.
*인그레스
⇒ 외부에서 내부로 접근시 요청을 하는데 어떻게 처리할지 정해 놓은 규칙에 대한 모음.
*레이블( Label ) , --show-labels
키:
어노테이션 :
무중단 배포:
*컨피그 맵
⇒ 환경설정에 대한 것을 일부 또는 전체에 대해서 불러와서 적용 시켜주는것.
⇒ 컨피그맵에 있는 내용중 일부 또는 전체를 불러와서 사용 가능함.
⇒ 컨피그맵을 이용하여 볼륨에 마운트할 수 도 있음.
*시크릿
⇒ 비밀번호, 토큰, SSH키 등 정보를 저장하는 용도
*스케줄링 ( 파드 스케줄링 )
⇒ 파드가 어떤 노드에서 실행될지는 키:값으로 설정 해서 결정 할 수 있음.
*볼륨 - 저장소, 즉 데이터 저장소
종류
*오트 스케줄링
⇒ 지정해둔 조건에 따라 파드개수를 자동으로 늘렸다 줄였다 하는 기능
⇒ HPA에 의해 Deploy가 관리되며, CPU사용값을 설정해두면 그 값에 도달시 파드가 실행되거나 다시 축소되는 기능