본문 바로가기

Cloud/Kubernetes

15단계로 배우는 도커와 쿠버네티스 (서터디)

책이 안좋은건 아닌데 구성이 좀 이상함;; 마지막에 몰아넣는 느낌??

14. 오토스케일

1) 개념

  • 오토스케일?
    • CPU와 메모리 사용률에 따라 파드나 노드의 수를 자동으로 늘리고 줄임
    • 퍼블릭 클라우드의 경우 노드의 개수, 이용 시간에 따라 비용이 달라지기 때문에 비용 최적화와도 연결
    • 온프레미스의 경우 제한된 서버의 자원을 최대한 활용
  • 쿠버네티스 오토스케일
    • 수평 파드 오토스케일러 (Horizontal Pod Autoscaler, HPA) : 파드의 메트릭을 감시하여 파드의 레플리카 수를 늘리거나 줄임

HPA

  • 메트릭 선택 : 지정한 메트릭 값과 파드 레플리카 개수 사이에서 직접적인 관계가 있어야 함
  • 스래싱 방지 : 수행 시간보다 교체 시간이 더 길수도 있음
  • 지연 : cooldown, 지연된 반응을 도입.. 지연이 길면 HPA의 응답성이 떨어지고 지연을 줄이면 플랫폼 로드가 증가

15. 클러스터 가상화

1) 개념

  • 효과적인 운영을 위하여 하나의 K8S 클러스터를 여러 개로 분할해서 사용
  • 네임스페이스 단위로 논리적인 분리 (물리적인 분리의 경우 클러스터가 분리됨)
  • 각 네임스페이스가 서로 영향을 미치지 않도록 구성

네임스페이스

  • K8S 클러스터는 여러 개의 네임스페이스를 가질 수 있음
  • 네임스페이스는 명령어의 적용 범위, 리소스 할당, 접근 제어로 구분하여 설정이 가능

kubectl config

Secret & Configmap

  • 어플리케이션의 설정 정보나 패스워드와 같은 인증 정보는 컨테이너에 담으면 안됨
  • 이를 통해 이미지의 빌드 횟수를 줄일 수 있음
  • 컨테이너의 immutable을 유지
  • Configmap : 네임스페이스에 저장한 설정 정보
  • Secret : 인증 정보와 같이 보안이 필요한 정보
  • 컨테이너는 오브젝트를 파일 시스템으로 마운트하여 파일로 읽거나 환경 변수로 참조할 수 있음

Resource Quota & Limit Range

  • Resource Quota : 네임스페이스별 리소스의 총 사용량을 제한
  • Limit Range : CPU와 메모리 각각의 요구량과 최대량의 기본값을 설정

Network Access

  • Calico를 통해 적용
  • NetworkPolicy