HPA+CronHPA 조합을 통해 복잡한 비즈니스 탄력적 확장 시나리오에 대처

이 기사는 Huawei Cloud 커뮤니티 " HPA+CronHPA 조합을 통해 복잡한 비즈니스 탄력적 확장 시나리오 대처 "(저자: Cloud Container Future)에서 공유되었습니다.

배경

k8s 클러스터에서는 컨테이너 수평 자동 확장(HPA)이 컨테이너 리소스 사용량과 설정된 복제본 범위 내에서 워크로드 복제본(복제본) 수를 자동으로 확장 및 축소할 수 있습니다. HPA는 표시기 임계값을 기준으로 확장됩니다. 일반적인 표시기에는 CPU 및 메모리가 포함됩니다. QPS, 연결 수 등과 같은 사용자 지정 지표를 통해 확장할 수도 있습니다. 그러나 시나리오가 있습니다. 지표에 따른 스케일링에는 특정 지연이 있습니다. 이러한 유형의 지연에는 주로 수집 지연(분 수준), 판단 지연(분 수준) 및 스케일링 지연(분 수준)이 포함됩니다. 이러한 종류의 분 단위 지연은 단기적으로 급격한 비즈니스 트래픽 증가에 적응할 수 없으므로 애플리케이션 CPU가 급증하고 응답 시간이 길어질 수 있습니다.

CronHPA( 컨테이너 예약 수평 자동 확장 )는 HPA를 보완하는 것으로, 정해진 기간에 피크 기간이 있는 기업의 경우 컨테이너 인스턴스 수를 미리 확장하여 갑작스러운 비즈니스 트래픽 및 비즈니스 지연으로 인한 성능 저하를 방지할 수 있습니다. 사업이 저조해지면 예정된 자원 재활용이 시작됩니다.

일부 비즈니스 시나리오에서는 트래픽 폭증과 명백한 최고점과 최저점이 있습니다. CronHPA와 HPA 정책이 동시에 구성된 경우 다음과 같은 상황이 발생할 수 있습니다. 비즈니스 최고점이 도달하기 전에 CronHPA 예약 작업이 비즈니스 컨테이너 복사본을 확장합니다. , 이때 HPA는 리소스 사용량이 매우 낮다는 것을 감지하고 인스턴스 조정을 트리거하여 사전 조정 전략이 실패할 수 있습니다.

Huawei Cloud CCE 서비스는 CronHPA 정책과 HPA 정책의 공동 설정을 지원하고 HPA 복사 범위의 상한 및 하한을 동적으로 설정하여 비즈니스 컨테이너 인스턴스 수를 조정합니다.

1.jpg

사용예

일상 생활에서 많은 비즈니스 시나리오에는 트래픽 폭주 시 뚜렷한 최고점과 최저점이 있으며 다음과 같이 응답 지연에 매우 민감합니다.

1. 온라인 게임 : 대규모 온라인 게임인 X 게임 클라이언트는 저녁, 주말, 공휴일 등 성수기에는 플레이어 수가 급격히 증가하여 게임 서버의 부하가 순간적으로 급증합니다. 시간이 지남에 따라 로드 복사본 수가 느리게 확장되면 네트워크 지연이 발생하고 게임 경험이 크게 저하될 수 있습니다. 

2. 라이브 비디오 : X Video Live APP, 특정 대규모 이벤트, 대회 및 기타 라이브 방송이 시작되면 시청자 수가 급격히 증가하여 서버 부하가 급격히 증가하고 네트워크 지연 시간이 증가합니다. 라이브 방송을 시청하는 사용자의 손실로 이어집니다. 

3. 전자상거래 프로모션 : X 전자상거래 플랫폼은 일반적으로 프로모션 활동 중에 사용자의 열광을 불러일으켜 사용자 방문이 크게 증가하고, 비즈니스 컨테이너가 제때에 확장되지 않으면 서버 부하가 급격히 증가할 가능성이 높습니다. 사용자는 경험이 저하되어 비즈니스 중단으로 이어질 수 있습니다. 

4. 금융 거래 : X 금융 거래 플랫폼에는 다양한 금융 상품이 포함되어 있으며, 모두 실시간 응답이 필요합니다. 네트워크 지연은 거래 효율성과 정확성에 큰 영향을 미칩니다. 피크 기간에는 트랜잭션 볼륨이 급격하게 증가하고 네트워크 대기 시간도 늘어납니다. 

위의 비즈니스 시나리오는 모두 효율적이고 안정적인 네트워크 지원이 필요하며 네트워크 대기 시간에 매우 민감합니다 . 비즈니스 컨테이너가 제때 확장되지 않으면 네트워크 대기 시간이 너무 길어지고 사용자 경험이 저하되며 정상적인 비즈니스 운영에도 영향을 받게 됩니다.

다음은 라이브 비디오 서비스를 예로 들어 Elastic Scaling 구성을 수행하는 방법을 소개합니다. 매일 밤 8시 30분부터 10시까지 인기 라이브 방송이 있다고 가정하면, 이 기간 동안 사용자 방문 수가 급격히 증가한 다음 트래픽이 최저점에 도달할 때까지 천천히 감소합니다. 비용을 절약하려면 다음 구성을 사용하여 트래픽 피크가 도달하기 전에 미리 비즈니스 컨테이너 인스턴스 수를 확장할 수 있습니다. 트래픽 피크가 가라앉은 후 비즈니스 흐름에 따라 컨테이너 인스턴스 수를 천천히 줄일 수 있습니다.

1. CCE 콘솔에서 클러스터 이름을 클릭하여 클러스터에 들어갑니다. 

2. 왼쪽 네비게이션 바에서 "Workload"를 클릭하고, 대상 워크로드의 작업 항목에서 "More > Auto Scaling"을 클릭합니다. 

2.jpg

3. 정책 유형을 "HPA+CronHPA 정책"으로 선택하고 HPA 정책과 CronHPA 정책을 동시에 활성화합니다 . 이때 CronHPA는 HPA 정책의 최대 및 최소 인스턴스 수를 정기적으로 조정합니다. 

4. HPA 정책 설정 

아래와 같이 인스턴스 범위와 시스템 정책을 설정합니다. HPA는 CPU 사용률이 80%를 초과하는 경우 현재 비즈니스 컨테이너의 CPU 사용률을 기준으로 1~10 범위에서 컨테이너의 인스턴스 수를 동적으로 조정합니다. , CPU 사용률이 낮으면 자동으로 용량을 확장합니다. 비즈니스 컨테이너 인스턴스 수를 60%로 자동 축소합니다.

3.png

5. CronHPA 정책 설정 

아래 그림과 같이 예약된 작업을 설정합니다.

전략 1 : 20시에 HPA 정책 인스턴스 번호 범위를 1-10에서 8-10으로 조정합니다.

전략 2 : 22시 30분에 HPA 정책 인스턴스 번호 범위를 8-10에서 1-10으로 조정합니다.

4.png

6. 위 단계를 반복합니다. 여러 정책 규칙을 추가할 수 있지만 정책의 트리거 시간은 동일할 수 없습니다 . 

7. 설정이 완료되면 "생성"을 클릭하세요. 

위 구성이 완료된 후 CronHPA는 트래픽 피크 전 20시에 HPA 정책 인스턴스 수를 1-10에서 8-10으로 조정합니다. 이때 HPA는 비즈니스 인스턴스 수를 최소 8개로 확장합니다. 다가오는 기간에 대비하십시오. HPA 정책 인스턴스 수 범위를 8-10에서 1-10으로 조정하려면 트래픽 피크가 지난 후 22:30까지 기다리십시오. 이때 HPA는 비즈니스 트래픽 상황에 따라 비즈니스 컨테이너 인스턴스 수를 적절한 값으로 축소합니다. 사용자 사용 비용을 절감합니다.

CronHPA와 HPA 연계 분석

HPA는 Pod의 수평적 확장을 제어하는 ​​데 사용되는 컨트롤러입니다. HPA는 주기적으로 Pod의 리소스 사용량 데이터를 확인하고 HPA 리소스에 대해 구성된 목표 값을 충족하는 데 필요한 복제본 수를 계산한 후 대상 리소스의 Replicas 필드를 조정합니다( 예를 들어 배포).

CronHPA는 복잡한 시나리오에서 워크로드 확장을 충족하기 위해 HPA와의 연계를 달성하기 위해 HPA 정책의 최대 및 최소 인스턴스 수를 정기적으로 조정하도록 지원합니다.

HPA와 CronHPA는 모두 동일한 배포 개체에 대해 작동하므로 두 가지 확장 전략이 서로 독립적이므로 이전에 수행한 작업을 덮어쓰므로 확장 효과가 기대에 미치지 못합니다. 이런 상황은 피해야 합니다.

5.jpg

위의 문제를 방지하기 위해 CronHPA를 강화하여 HPA 정책에 CronHPA 규칙을 적용할 수 있도록 지원했습니다. CronHPA는 HPA의 정책 구성만 조정하고 비즈니스 컨테이너의 인스턴스 수는 HPA에서만 운영하므로 협업이 가능합니다. 두 가지 탄력적 전략의 작업.

 

요약하다

k8s 커뮤니티에서 제공하는 HPA 정책은 구성된 인스턴스 수 내에서 비즈니스 컨테이너의 CPU, 메모리 및 기타 리소스 사용량을 기반으로 자동 확장 및 축소를 지원합니다. 예정된 확장 전략 CronHPA를 겹쳐서, 비즈니스 피크가 도래하기 전에 CronHPA 예정된 작업을 통해 비즈니스 컨테이너 복사본 수를 미리 확장할 ​​것으로 예상됩니다. 그러나 이때 HPA는 리소스 사용량이 매우 낮다는 것을 감지할 수 있습니다. 인스턴스 축소를 트리거하여 사전 확장 전략이 유효하지 않게 됩니다. Huawei Cloud CCE 서비스는 HPA와 CronHPA를 결합하여 지표 탄력성 전략과 타이밍 탄력성 전략 간의 유기적인 시너지 효과를 달성하고 고객 비즈니스의 복잡한 탄력적 확장 시나리오를 충족합니다.

참조 문서:

https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale/

https://support.huaweicloud.com/usermanual-cce/cce_10_0415.html

화웨이 클라우드의 신기술에 대해 빨리 알아보고 팔로우하려면 클릭하세요~

 

Microsoft의 중국 AI 팀은 수백 명의 사람들을 모아 미국으로갔습니다. 알려지지 않은 오픈 소스 프로젝트는 얼마나 많은 수익을 가져올 수 있습니까? Huawei는 공식적으로 Yu Chengdong의 위치가 화중 과학 기술 대학의 오픈 소스 미러 스테이션 으로 조정되었다고 발표했습니다. 사기꾼들이 TeamViewer를 사용해 외부 네트워크 접속을 공식적으로 개시했습니다 ! 원격 데스크톱 공급업체는 무엇을 해야 합니까? 최초의 프런트 엔드 시각화 라이브러리이자 Baidu의 유명한 오픈 소스 프로젝트 ECharts의 창립자 - "바다에 나간" 유명한 오픈 소스 회사의 전직 직원이 소식을 전했습니다. 리더는 격노하고 무례하게 행동하여 임신한 여성 직원을 해고했습니다. OpenAI는 AI가 포르노 콘텐츠를 생성하도록 허용하는 것을 고려했습니다. Microsoft는 Rust Foundation에 100만 달러를 기부했다고 보고했습니다. 여기서 time.sleep(6)의 역할은 무엇입니까? ?
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/4526289/blog/11149058