본문 바로가기

개발하자

쿠베르네테스의 HPA와 ReplicaSet는 어떤 관계인가요?

반응형

쿠베르네테스의 HPA와 ReplicaSet는 어떤 관계인가요?

나는 이것에 대한 답을 찾을 수 없는 것처럼 보이지만 HPA와 ReplicaSet 사이의 관계는 무엇입니까? 제가 알기로는 RS를 생성하는 복제본을 정의하는 배포 개체를 정의하고 RS는 포드를 감독하고 스케일업 및 스케일다운을 담당합니다.

이 사진에서 HPA는 어디에 들어맞습니까? 배포 개체를 덮어쓰나요? 배포 개체에 대한 매니페스트의 복제본 수를 정의할 때 약간 혼란스럽습니다.

감사해요!




배포를 생성할 때 복제 세트와 에서 제공한 포드 수를 생성합니다. 배포는 RS 및 RS 포드를 제어합니다. HPA는 배포에 대한 지침을 제공하고 RS를 통해 포드가 해당 확장을 충족하는지 확인하는 또 다른 추상화입니다.

k8s 문서에 관한 한: Horizontal Pod AutoScaler는 관찰된 CPU 활용률(또는 사용자 지정 메트릭 지원을 통해 일부 다른 애플리케이션에서 제공한 메트릭)을 기반으로 복제 컨트롤러, 배포, 복제본 세트 또는 상태 저장 세트의 포드 수를 자동으로 확장합니다. 수평 포드 자동 축척은 데몬 세트와 같이 축척할 수 없는 객체에는 적용되지 않습니다.

간략한 개요는 다음과 같습니다. 기본적으로 컨트롤러에 관한 것입니다. 모든 k8s 개체에는 컨트롤러가 있으며, 배포 개체가 생성되면 해당 컨트롤러가 rs 및 관련 포드를 생성하고, rs가 포드를 제어하며, 배포 컨트롤러를 제어합니다. 반면에 hpa 컨트롤러는 어느 순간에도 포드 수가 예상보다 증가/감소하는 것을 확인하면 배포에 대해 설명합니다.

k8s에서 자세히 보기




@joe-bowbeer가 다른 답변의 코멘트에서 말하는 것을 확인하는 것.

HPA를 사용하는 경우 에서 제거해야 한다고 합니다:

HPA가 활성화된 경우 배포 및/또는 상태 저장 집합의 spec.replicas 값을 해당 매니페스트에서 제거하는 것이 좋습니다. 이렇게 하지 않으면 kubectl apply -f deployment.yaml과 같이 해당 개체에 대한 변경 사항이 적용될 때마다 현재 포드 수를 spec.replicas 키 값으로 조정하도록 Kubernetes에 지시합니다. 이는 바람직하지 않을 수 있으며 HPA가 활성화될 때 문제가 될 수 있습니다.


반응형