Cloud/Kubernetes
15단계로 배우는 도커와 쿠버네티스 (서터디)
퐁스
2021. 7. 1. 18:41
책이 안좋은건 아닌데 구성이 좀 이상함;; 마지막에 몰아넣는 느낌??
14. 오토스케일
1) 개념
- 오토스케일?
- CPU와 메모리 사용률에 따라 파드나 노드의 수를 자동으로 늘리고 줄임
- 퍼블릭 클라우드의 경우 노드의 개수, 이용 시간에 따라 비용이 달라지기 때문에 비용 최적화와도 연결
- 온프레미스의 경우 제한된 서버의 자원을 최대한 활용
- 쿠버네티스 오토스케일
- 수평 파드 오토스케일러 (Horizontal Pod Autoscaler, HPA) : 파드의 메트릭을 감시하여 파드의 레플리카 수를 늘리거나 줄임
- 클러스터 오토스케일러 (Cluster Autoscaler, CA) : 클라우드의 API와 연동하여 노드를 늘리거나 줄인다.
HPA
- 메트릭 선택 : 지정한 메트릭 값과 파드 레플리카 개수 사이에서 직접적인 관계가 있어야 함
- 스래싱 방지 : 수행 시간보다 교체 시간이 더 길수도 있음
- 지연 : cooldown, 지연된 반응을 도입.. 지연이 길면 HPA의 응답성이 떨어지고 지연을 줄이면 플랫폼 로드가 증가
15. 클러스터 가상화
1) 개념
- 효과적인 운영을 위하여 하나의 K8S 클러스터를 여러 개로 분할해서 사용
- 네임스페이스 단위로 논리적인 분리 (물리적인 분리의 경우 클러스터가 분리됨)
- 각 네임스페이스가 서로 영향을 미치지 않도록 구성
네임스페이스
- K8S 클러스터는 여러 개의 네임스페이스를 가질 수 있음
- 네임스페이스는 명령어의 적용 범위, 리소스 할당, 접근 제어로 구분하여 설정이 가능
kubectl config
- 마스터에 대한 접근 정보를 가지고 있음
- 실행 시 옵션으로 지정(-kubconfig <config_path>)하거나 홈 디렉터리(.kube/config)를 참조하거나 환경 변수 KUBECONFIG에 지정된 경로를 참조
- https://kubernetes.io/ko/docs/tasks/access-application-cluster/configure-access-multiple-clusters/
Secret & Configmap
- 어플리케이션의 설정 정보나 패스워드와 같은 인증 정보는 컨테이너에 담으면 안됨
- 이를 통해 이미지의 빌드 횟수를 줄일 수 있음
- 컨테이너의 immutable을 유지
- Configmap : 네임스페이스에 저장한 설정 정보
- Secret : 인증 정보와 같이 보안이 필요한 정보
- 컨테이너는 오브젝트를 파일 시스템으로 마운트하여 파일로 읽거나 환경 변수로 참조할 수 있음
Resource Quota & Limit Range
- Resource Quota : 네임스페이스별 리소스의 총 사용량을 제한
- Limit Range : CPU와 메모리 각각의 요구량과 최대량의 기본값을 설정
Network Access
- Calico를 통해 적용
- NetworkPolicy