Amazon EKS에서 Kubernetes Metrics Server and Horizontal Pod Autoscaler를 설정하려면 어떻게 해야 하나요?

2분 분량
0

Amazon Elastic Kubernetes Service(Amazon EKS)에 Kubernetes Metrics Server and Horizontal Pod Autoscaler(HPA)를 설치하고 싶습니다.

해결 방법

환경 설정하기

  1. Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스가 있습니다.
  2. EC2 인스턴스에 kubectl을 설치합니다.
  3. EC2 인스턴스에 최신 버전의 AWS Command Line Interface(AWS CLI)를 설치하고 구성합니다.
  4. Amazon EKS 클러스터를 가리키도록 kubeconfig 파일을 구성합니다.

Kubernetes 지표 서버 생성

1.지표 서버를 설치하려면 다음 명령을 실행합니다.

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

2.지표 서버가 실행 중인지 확인하려면 다음 명령을 실행합니다.

kubectl get pods -n kube-system -l k8s-app=metrics-server

출력은 다음과 비슷합니다.

kubectl get pods -n kube-system -l k8s-app=metrics-server
metrics-server-85cc795fbf-79d72   1/1     Running   0          22s

php-apache 배포와 서비스 만들기

1.**php-apache ** 배포를 만들려면 다음 명령을 실행합니다.

kubectl create deployment php-apache --image=k8s.gcr.io/hpa-example

2.CPU 요청을 설정하려면 다음 명령을 실행합니다.

kubectl patch deployment php-apache -p='{"spec":{"template":{"spec":{"containers":[{"name":"hpa-example","resources":{"requests":{"cpu":"200m"}}}]}}}}'

중요:****cpu의 값을 올바르게 설정하지 않으면 포드의 CPU 사용률 지표가 정의되지 않아 HPA를 조정할 수 없습니다.

3.배포를 서비스로 노출하려면 다음 명령을 실행합니다.

kubectl create service clusterip php-apache --tcp=80

4.HPA를 생성하려면 다음 명령을 실행합니다.

kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

5.HPA가 생성되었는지 확인하려면 다음 명령을 실행합니다.

kubectl get hpa

6.이전에 생성한 배포에 연결할 포드를 생성하려면 다음 명령을 실행합니다.

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

7.1단계에서 사용한 네임스페이스의 파드에 대한 부하를 테스트하려면 다음 스크립트를 실행합니다.

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

**참고:**로드 제너레이터 포드의 while 루프와 tty 세션을 종료하려면 Ctrl + C를 사용하여 루프를 취소합니다. 그런 다음 CTRL+ D를 사용하여 세션을 종료합니다.

8.HPA가 CPU 스케일 지표를 기반으로 포드를 확장하는 방법을 확인하려면 다음 명령을 실행합니다(다른 터미널 창에서 실행하는 것이 좋습니다).

kubectl get hpa -w

이제 지표 서버가 가동되어 실행 중이며, 이를 사용하여 리소스 기반 지표를 얻을 수 있습니다.

9.HPA 테스트에 사용되는 리소스를 정리하려면 다음 명령을 실행합니다.

kubectl delete hpa,service,deployment php-apache
kubectl delete pod load-generator

관련 정보

Horizontal Pod Autoscaling (Kubernetes 웹사이트)

AWS 공식
AWS 공식업데이트됨 일 년 전