오늘 배웠습니다: Kubernetes에서 수평 크레인 자동 스티커(HPA) 활성화
Kubernetes의 수평 자동 배율을 허용하기 위해 HPA 대상의 현재 리소스 값을 알 수 없습니다.
사진작가Paweł Czerwiński우Unsplash
한동안 나는 어떤 업데이트도 발표하지 않았다.요즘은 바빠서 지난 몇 주 동안 한가한 시간을 찾아 글을 한 편 쓰기가 어려웠다.그래서 이 얻기 어려운 기회에 나는 오늘 배운 것을 좀 쓰고 싶다.
소개로, 현재 저는 제 보조 프로젝트를 위해 Kubernetes를 시도하고 있습니다.이것은 모바일 응용 프로그램의 부대 항목이다.로그인 페이지는 https://mabar.id에서 볼 수 있으며, 현재는android 응용 프로그램을 유일하게 지원하며,playstorehere에서 다운로드할 수 있습니다.
나는 이미 이 프로젝트에서 몇 달 동안 일했고, 나는 나의 친구와 함께 이 일을 했다.저는 백엔드, API, Infra에서 일하고 있으며 이 프로젝트에서 Kubernetes를 사용합니다.
그래서 오늘 제가 Kubernetes로 수평 축소를 시도했을 때 새로운 것을 배웠습니다.
이전에 Kubernetes에는 실제로 HPA(수평 Pod AutoCaller)라는 객체가 있었습니다.HPA에 대한 자세한 내용은 공식 문서documentation를 참조하십시오.
우선, 나는 이것이 매우 쉽게 실현될 것이라고 생각한다.배포 스크립트에 대상을 추가하기만 하면 Kubernetes 집단에서 처리해야 합니다.
문제
하지만 쉽지 않았다.따라서 실제 상황을 모의하기 위해 나는 실제 문제가 해결되기 전에 어떻게 해결되었는지, 그리고 내가 어떻게 해결했는지 쓸 것이다.
예를 들어 Kubernetes에 https://mabar.id 의 로그인 페이지를 배치하고 싶습니다.HPA도 넣고 싶어요.이렇게 하는 이유:
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: landing
namespace: landing-page
spec:
scaleTargetRef:
apiVersion: apps/v1beta1
kind: Deployment
name: landing
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 70
이 간단한 스크립트만 있으면 자동으로 실행됩니다.이것은 나의 첫 번째 생각이다.그럼 테스트를 해볼게요.나는 서버에 대해 부하 테스트를 진행했다.
$ hey -c 50 -z 5m https://mabar.id
나는 부하 테스트 도구로 hey를 사용한다.나는 로그인 페이지로 50분 동안 병렬 호출을 만들었다.일반적으로 요청이 점점 커지면 새로운pod 던전을 배치해야 합니다.
하지만 내가 본 것은 내 기중기가 붕괴되고 다시 작동하는 것뿐이었다.왜 이러는지 궁금해요.
나중에 HPA의 디테일을 찾다가 이상한 일을 봤어요.
$ kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
landing Deployment/landing <unknown>/70% 1 10 1 74d
HPA의 대상을 알 수 없음또는 상세한 버전에서descripe 명령을 사용합니다.
$ kubectl describe hpa landing
지표 부분에서/70%를 나타냈다.왜 이런 상황이 발생했을까
솔루션
그래서 많은 해결 방안과 Stack Overflow 문제를 검색한 후에 다행히도 매우 도움이 되는 답이 하나 있는데, 왜 나의 HPA가 작동하지 않는가
따라서, 내가 So 답안에서 알게 된 후, 나는 나의 Kubernetes 집단이 POD에 현재 사용되고 있는 자원을 검색하기 위해metrics 서버가 여전히 없다고 생각한다
따라서 해결 방안은 Kubernetes 그룹에 metric 서버를 설치해야 합니다.설치해야 하는metric 서버는 이 저장소에서 찾을 수 있습니다: https://github.com/kubernetes-incubator/metrics-server
실제로 우리가 저장소로 이동하면, 도량 서버를 Kubernetes 집단으로 실현하는 방법을 보여 줍니다.하지만 Github 저장소의 단계를 복사합니다
단계
- 저장소 복제
$ git clone [https://github.com/kubernetes-incubator/metrics-server.git](https://github.com/kubernetes-incubator/metrics-server.git)
.....
$ cd metrics-server
- kubectl 명령을 사용하여 설정을 배치합니다.
$ kubectl apply -f deploy/1.8+/
Reference
이 문제에 관하여(오늘 배웠습니다: Kubernetes에서 수평 크레인 자동 스티커(HPA) 활성화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bxcodec/today-i-learned-enabling-horizontal-pod-autoscalerhpa-in-kubernetes-4mmm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)