この記事は、Huawei クラウド コミュニティ「HPA+CronHPA の組み合わせによる複雑なビジネスの柔軟なスケーリング シナリオへの対処」(著者: Cloud Container Future) から共有されたものです。
背景
k8sクラスタでは、コンテナ水平自動スケーリング(HPA)により、コンテナリソースの利用状況に応じて、設定されたレプリカ範囲内でワークロードレプリカ(レプリカ)の数を自動的に拡張・縮小できます。 HPA はインジケーターのしきい値に基づいてスケールされます。一般的なインジケーターには CPU とメモリが含まれます。 QPS、接続数などのカスタム指標を使用してスケールすることもできます。ただし、シナリオがあります。指標に基づくスケーリングには一定の遅延が発生します。このタイプの遅延には、主に収集遅延 (分レベル)、判断遅延 (分レベル)、スケーリング遅延 (分レベル) が含まれます。このような分単位の遅延では、短期的なビジネストラフィックの急増に対応できず、アプリケーションのCPUが急増し、応答時間が長くなる可能性があります。
コンテナーのスケジュールされた水平自動スケーリング(CronHPA ) は、HPA を補足するもので、一定期間にピークが発生するビジネスの場合、突然のビジネス トラフィックやビジネス遅延によるパフォーマンスの不足を防ぐために、コンテナー インスタンスの数を事前に拡張できます。ビジネスが低迷している場合、計画されたリソースのリサイクルがトリガーされます。
一部のビジネス シナリオでは、トラフィックのバーストと明らかなピークと谷が発生します。CronHPA と HPA ポリシーの両方が同時に構成されている場合、ビジネス ピークが到来する前に、CronHPA のスケジュールされたタスクによってビジネス コンテナのコピーが拡張されるという状況が発生する可能性があります。この時点で、HPA はリソースの使用量が非常に低いことを検出し、インスタンスのスケーリングをトリガーし、事前スケーリング戦略が失敗する可能性があります。
Huawei Cloud CCEサービスは、CronHPAポリシーとHPAポリシーの共同設定をサポートし、HPAコピー範囲の上限と下限を動的に設定してビジネスコンテナインスタンスの数を調整します。
使用例
日常生活では、多くのビジネス シナリオでは、トラフィックのバースト時に明らかな山と谷があり、次のような応答の遅延に非常に敏感です。
1.オンラインゲーム:大規模オンラインゲームであるX Game Clientでは、夕方や週末、休日などの繁忙期にプレイヤー数が急増し、ゲームサーバーの負荷が瞬時に上昇します。ロード コピーの数がゆっくりと拡張されると、ネットワークの遅延が発生し、ゲーム エクスペリエンスが大幅に低下する可能性があります。
2.ライブビデオ:X Video Live APPでは、特定の大規模なイベント、競技会、その他のライブブロードキャストが開始されると、視聴者数が急激に増加し、サーバーの負荷が急激に増加し、ネットワーク遅延が増加します。ライブブロードキャストを視聴するユーザーの喪失につながり、エクスペリエンスが低下します。
3.電子商取引のプロモーション: X 電子商取引プラットフォームは、通常、プロモーション活動中にユーザーの熱意を呼び起こし、その結果、ユーザーの訪問数が大幅に増加し、ビジネス コンテナが時間内に拡張されない場合、サーバーの負荷が急激に増加する可能性があります。エクスペリエンスが低下し、重大なビジネス中断につながる可能性があります。
4.金融取引: X 金融取引プラットフォームにはさまざまな金融商品が含まれており、そのすべてでリアルタイムの応答が必要となり、取引の効率と精度に大きな影響を与えます。ピーク時にはトランザクション量が大幅に増加し、ネットワーク遅延も増加します。
上記のビジネス シナリオはすべて、効率的で安定したネットワーク サポートを必要とし、ネットワーク遅延の影響を非常に受けやすくなります。ビジネス コンテナが時間内に拡張されないと、ネットワークの遅延が非常に大きくなり、ユーザー エクスペリエンスが低下し、通常のビジネス運営にも影響が及びます。
以下では、ライブ ビデオ サービスを例として、エラスティック スケーリング構成を実行する方法を紹介します。毎晩 8:30 から 10:00 まで人気のライブ配信があるとします。この期間中、ユーザーのアクセス数は急激に増加し、その後、トラフィックは徐々に減少し、谷に達します。コストを節約するために、次の構成を使用して、トラフィックのピークが到来する前にビジネス コンテナ インスタンスの数を事前に拡張し、トラフィックのピークが落ち着いた後、ビジネス フローに基づいてコンテナ インスタンスの数を徐々に減らすことができます。
1. CCE コンソールで、クラスタ名をクリックしてクラスタに入ります。
2.左側のナビゲーションバーの「ワークロード」をクリックし、対象のワークロードの操作欄にある「詳細 > Auto Scaling」をクリックします。
3.ポリシー タイプとして [HPA+CronHPA ポリシー] を選択し、HPA ポリシーを有効にし、同時に CronHPAポリシーを有効にします。現時点では、CronHPA は HPA ポリシーのインスタンスの最大数と最小数を定期的に調整します。
4. HPA ポリシーを設定する
以下に示すように、インスタンスの範囲とシステム ポリシーを設定します。HPA は、現在のビジネス コンテナーの CPU 使用率が 80% を超える場合、コンテナーのインスタンス数を 1 ~ 10 の範囲で動的に調整します。 CPU 使用率が低い場合、ビジネス コンテナのインスタンス数を 60% に自動的にスケールダウンします。
5. CronHPAポリシーを設定する
以下の図に示すように、スケジュールされたタスクを設定します。
戦略 1 : 20:00 に HPA ポリシー インスタンス番号の範囲を 1 ~ 10 から 8 ~ 10 に調整します。
戦略 2 : 22:30 に HPA ポリシー インスタンス番号の範囲を 8 ~ 10 から 1 ~ 10 に調整します。
6.上記の手順を繰り返します。複数のポリシー ルールを追加できますが、ポリシーのトリガー時間を同じにすることはできません。
7.設定が完了したら、「作成」をクリックします。
上記の構成が完了すると、CronHPA はトラフィックのピーク前の 20:00 に HPA ポリシー インスタンスの数を 1 ~ 10 から 8 ~ 10 に調整します。この時点で、HPA はビジネス インスタンスの数を少なくとも 8 に拡張します。今後のトラフィックのピークに備えます。トラフィックのピークが過ぎた後 22:30 まで待って、HPA ポリシーのインスタンス数の範囲を 8 ~ 10 から 1 ~ 10 に調整します。この時点で、HPA はビジネス トラフィックの状況に基づいてビジネス コンテナ インスタンスの数を適切な値に縮小します。ユーザーの使用コストを削減します。
CronHPA と HPA の連携分析
HPA は、ポッドの水平スケーリングを制御するために使用されるコントローラーです。HPA は、ポッドのリソース使用状況データを定期的にチェックし、HPA リソースに設定されたターゲット値を満たすために必要なレプリカの数を計算し、ターゲット リソースのレプリカ フィールドを調整します (デプロイメントなど)。
CronHPA は、HPA ポリシーのインスタンスの最大数と最小数の定期的な調整をサポートし、複雑なシナリオでのワークロードのスケーリングに合わせて HPA との連携を実現します。
HPA と CronHPA は両方とも同じデプロイメント オブジェクトに対して動作するため、2 つのスケーリング戦略は相互に独立しており、後で実行された操作が上書きされ、スケーリング効果が期待どおりにならなくなります。この状況は回避する必要があります。
上記問題を回避するために、CronHPAを強化し、HPAポリシーへのCronHPAルールの適用をサポートし、CronHPAはHPAのポリシー構成のみを調整し、業務コンテナのインスタンス数はHPAのみで運用することで連携を実現しました。 2 つの弾性戦略の働き。
要約する
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
クリックしてフォローし、できるだけ早くHuawei Cloudの新しいテクノロジーについて学びましょう~
マイクロソフトの中国AIチームは数百人を巻き込んで米国に渡ったが、 未知のオープンソースプロジェクトはどれだけの収益をもたらすことができるだろうか? 華中科技大学のオープンソースミラーステーション の立場が調整されたとファーウェイが正式に発表した。 外部ネットワークへのアクセスを正式にオープンしました。 詐欺師は TeamViewer を使用して 398 万件を転送しました。リモート デスクトップ ベンダーは何をすべきでしょうか? 初のフロントエンド視覚化ライブラリであり、Baidu の有名なオープンソース プロジェクト ECharts の創設者である - 有名なオープンソース企業の元従業員が「海に行った」というニュースを伝えた: 部下からの挑戦を受けて、技術者はリーダーは激怒し、無礼になり、妊娠中の女性従業員を解雇しました。OpenAI が AI にポルノ コンテンツを生成させることを検討したと 、Rust Foundation に報告されました。time.sleep (6) の役割を教えてください。 ?