📂
Amazon EKS
  • Amazon EKS
  • 워크스페이스 생성하기
    • Cloud9 IDE 환경 구성
    • IAM 역할 생성
    • SSH & CMK Key 생성하기
  • EKS 클러스터 구축
    • EKS 클러스터 만들기
  • 쿠버네티스 대시보드 배포
    • Kubernetes 공식 대시보드 배포
  • 마이크로서비스 배포
    • 예제 애플리케이션 배포
    • 서비스 스케일(Scaling)
    • 애플리케이션 정리하기
  • 애플리케이션 배포 - Helm
    • HELM 설치
    • Helm으로 Nginx 배포
    • Helm을 사용하여 마이크로서비스 배포
    • 정리하기
  • 리소스 관리 - POD 배치
    • NodeSelector
    • Affinity and Anti-affinity
    • 더 실용적인 사용 사례
    • 정리하기
  • 리소스 관리 - Health Checks
    • Liveness 프로브 구성
    • Readiness 프로브 구성
    • 정리하기
  • 리소스 관리 - AutoScaling
    • HPA 구성하기
    • CA 구성하기
    • 정리하기
  • 네트워킹 - 서비스 노출
    • 서비스와 애플리케이션 연결
    • 서비스에 접근하기
    • 서비스 노출
    • Ingress
    • Ingress Controller
    • 정리하기
  • 네트워크 - Calico 정책
    • Calico 설치하기
    • Stars Policy Demo
    • 정리하기
  • Updating 권한설정 - RBAC
    • 테스트 POD 설치
    • 사용자 생성 및 맵핑
    • 역할과 바인딩
    • 정리하기
  • Updating 권한설정 - IAM 그룹
    • IAM Role, Group & User 생성하기
    • RBAC 설정하기
    • EKS 엑세스 테스트
    • 정리하기
  • Updating 권한설정 - Service account
    • OIDC 자격 증명 공급자 생성하기
    • IAM 역할 생성 및 지정
    • 샘플 POD 배포
    • 정리하기
  • Updating - 네트워크 - POD Security Group
    • SG 생성하기
    • RDS 생성하기
    • CNI 구성하기
    • SG 정책
    • Pod 배포하기
    • 정리하기
  • Updating - 모니터링 - Prometheus and Grafana
    • Prometheus 배포하기
    • Grafana 배포하기
    • 정리하기(Optional)
  • Updating 모니터링 - X-Ray
    • X-Ray DaemonSet 배포하기
    • 샘플 마이크로서비스 배포
    • X-Ray console 확인
    • 정리하기(Optional)
  • Updating 모니터링 - Container Insights
    • 사전 준비
    • Container Insights 구성하기
    • 부하 테스트
    • Container Insights 확인하기
    • 정리하기(Optional)
  • Updating CD - Gitops with Flux
    • 사전 준비
    • Codepipeline
    • EKS에 배포
    • 정리하기
  • Updating Argo Rollouts
  • Updating Service Mesh - AWS App Mesh
    • Fargate 및 OBSERVABILITY 구성
    • Product Catalog App 배포
    • APP MESH 설치
    • Porting to APP MESH
    • Virtual Gateway 구성
    • Canary
    • Observability
  • Updating 버전 업그레이드 - EKS Cluster
    • Upgrade EKS control Plane
    • Upgrade EKS CORE ADD-ONs
    • Upgrade Managed Node Group
Powered by GitBook
On this page
  • 1. 메트릭 서버 배포
  • 2. HPA로 애플리케이션 확장하기

Was this helpful?

  1. 리소스 관리 - AutoScaling

HPA 구성하기

Horizontal Pod AutoScaler 구성

Previous리소스 관리 - AutoScalingNextCA 구성하기

Last updated 3 years ago

Was this helpful?

1. 메트릭 서버 배포

Metrics Server는 쿠버네티스에 내장된 autoscaling을 위한 확장 가능하고 효율적인 컨테이너 리소스 메트릭 소스입니다.

이러한 메트릭은 deployments의 확장 동작을 유도 합니다.

를 사용하여 Metrics Server를 배포 합니다.

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.1/components.yaml

Metrics Server APIService의 상태를 확인합니다. (몇 분 정도 소요될 수 있습니다).

kubectl get apiservice v1beta1.metrics.k8s.io -o json | jq '.status'

이제 배포된 애플리케이션을 확장할 준비가 되었습니다.

2. HPA로 애플리케이션 확장하기

kubectl create deployment php-apache --image=us.gcr.io/k8s-artifacts-prod/hpa-example
kubectl set resources deploy php-apache --requests=cpu=200m
kubectl expose deploy php-apache --port 80

kubectl get pod -l app=php-apache

HPA 리소스를 만듭니다.이 HPA는 컨테이너 리소스로 할당된 CPU가 50%를 초과할 때 확장됩니다.

kubectl autoscale deployment php-apache `#The target average CPU utilization` \
    --cpu-percent=50 \
    --min=1 `#The lower limit for the number of pods that can be set by the autoscaler` \
    --max=10 `#The upper limit for the number of pods that can be set by the autoscaler`

kubectl을 사용하여 HPA를 봅니다. 1-2분 동안 <unknown>/50%가 표시되고 0%/50%가 표시 될 것입니다.

kubectl get hpa

부하를 생성하여 Pod가 확정 되도록 합니다.

Cloud9 환경에서 새 터미널을 열고 다음 명령을 실행하여 새 컨테이너의 셸로 이동합니다.

kubectl --generator=run-pod/v1 run -i --tty load-generator --image=busybox /bin/sh

while 루프를 실행하여 http:///php-apache 를 계속 가져 옵니다.

while true; do wget -q -O - http://php-apache; done

이전 탭에서 다음 명령을 사용하여 HPA를 확인합니다.

kubectl get hpa -w

HPA는 CPU 평균이 목표(50%)보다 낮아 질 때까지 설정된 최대 값(10)까지 파드를 확장하는 것을 볼 수 있습니다.

예제 애플리케이션을 배포하고 TCP 포트 80으로 서비스를 노출 합니다. 이 애플리케이션은 php-apache 이미지를 기반으로 하는 커스텀 빌드 이미지 입니다. index.php 페이지는 계산을 수행하여 CPU 부하를 생성 합니다. 자세한 정보는 에서 확인할 수 있습니다.

여기
Kubernetes Metrics Server