Kubernetesを一緒に学ぶ: 自動スケーリング

Kubernetesを一緒に学ぶ: 自動スケーリング

Kubernetes では、現在のリソース要件に基づいてワークロードをスケーリングできます。これにより、クラスターはリソース需要の変化に対してより柔軟かつ効率的に反応できるようになります。

ワークロードをスケーリングする場合、ワークロードに使用できるリソースを増減したり、レプリカのサイズを変更したりできます。

最初の方法は水平スケーリングと呼ばれ、2 番目の方法は垂直スケーリングと呼ばれます。

  • 水平スケーリング: アプリケーションの複数のインスタンスを実行する
  • 垂直スケーリング: コンテナに割り当てられたCPUとメモリリソースのサイズを調整します

ワークロードをスケーリングする方法には手動と自動がありますが、自動方法が重視されます。

ワークロードを手動でスケーリングする

Kubernetes はワークロードの手動スケーリングをサポートしています。水平スケーリングは kubeclt CLI を使用して実行できます。垂直スケーリングには、  パッチ ワークロードのリソース定義。

ワークロードを自動的にスケーリング

Kubernetes は、ワークロードの自動スケーリング、つまり自動水平スケーリングと自動垂直スケーリングもサポートしています。

Kubernetes での自動スケーリングとは、一連の Pod を管理するオブジェクトを自動的に更新することを指します。

ワークロードを水平に拡張する

Kubernetesでは、  水平ポッドオートスケーラー  (HPA) はワークロードを水平方向に自動的にスケーリングします。

これは Kubernetes API リソースおよびコントローラーとして実装され、CPU やメモリ使用量などの観測されたリソース使用率に合わせてレプリカの数を定期的に調整します。

HPAワークフロー

HPA

ワークロードを垂直に拡張する

機能ステータス: Kubernetes v1.25 [安定版]

Kubernetesでは、  垂直ポッドオートスケーラー  (VPA) ワークロードの自動垂直スケーリング。しかし、HPA とは異なり、VPA はデフォルトで Kubernetes に付属しておらず、別のプロジェクトです。

 VPA项目地址https://github.com/kubernetes/autoscaler/tree/9f87b78df0f1d6e142234bb32e8acbd71295585a/vertical-pod-autoscaler。

インストールが完了すると、管理対象レプリカのリソースをいつどのようにスケーリングするかを定義する CustomResourceDefinitions (CRD) を作成できます。

注: HPA が適切に動作するには、クラスターに Metrics Server をインストールする必要があります。

VPA ワークフロー:

VPA

現在、VPA は次の 4 つのモードで動作できます。

モデル

説明する

オート

現在、再作成を使用していますが、将来的にはインプレース更新に変更される可能性があります。

再現する

VPA は、ポッドの作成時にリソース要求を割り当て、要求されたリソースが新しい推奨事項と大幅に異なる場合は既存のポッドを 1 つずつ更新します。つまり、ポッドを再構築してリソースを更新します。

イニシャル

VPA は、ポッドの作成時にのみリソース要求を割り当て、その後は変更しません。

オフ

VPA は Pod のリソース要件を自動的に変更しません。

インプレースサイズ変更の制限

機能ステータス: Kubernetes v1.27 [アルファ]

再起動せずにポッドとコンテナのワークロードのサイズを変更するには、現在、Kubernetes バージョン 1.27 以降が必要です。
さらに、機能ゲート「InPlaceVerticalScaling」を有効にする必要があります。

クラスターサイズに基づく自動スケーリング

クラスターのサイズ (またはその他のシステム コンポーネントなど) に基づいてスケーリングする必要があるワークロードの場合は、Cluster Proportional Autoscaler (CPA) を使用できます。

VPA と同様に、CPA は Kubernetes コアの一部ではありませんが、GitHub に独自のプロジェクトがあります。

 CPA项目地址https://github.com/kubernetes-sigs/cluster-proportional-autoscaler。

クラスター比例オートスケーラーは、スケジュール可能なノードとコアの数を監視し、それに応じてターゲットワークロードのレプリカの数をスケーリングします。

レプリカの数を一定に保つ必要がある場合は、クラスター比例垂直オートスケーラーを使用して、クラスターのサイズに基づいてワークロードを垂直にスケーリングできます。プロジェクトは現在テスト段階にあります。

クラスター比例オートスケーラーはワークロードのレプリカの数をスケーリングしますが、クラスター比例垂直オートスケーラーは、クラスター内のノードまたはコアの数に基づいてワークロード (デプロイメントや DaemonSet など) のリソース要求を調整します。

イベント駆動型自動スケーリング

また、イベントに基づいてワークロードをスケールすることもできます。   Kubernetes イベント駆動型オートスケーラー (KEDA)。

ケダ

KEDA は、DevOps、SRE、および Ops チームが外部イベントまたはトリガーに基づいて Pod を水平方向にスケーリングするために使用する、軽量のオープンソース Kubernetes イベント駆動型オートスケーラーです。 KEDA は、CPU やメモリなどの標準リソース メトリックに依存するネイティブ Kubernetes 自動スケーリング ソリューションの機能を拡張するのに役立ちます。 KEDA を Kubernetes クラスターにデプロイし、カスタム リソース定義 (CRD) を使用してポッドのスケーリングを管理できます。

KEDA は、キュー内のメッセージ数など、処理するイベント数に基づいてワークロードをスケーリングできる CNCF 卒業プロジェクトです。さまざまなイベント ソースに合わせて、さまざまなアダプターを選択できます。

スケジュールベースの自動スケーリング

ワークロードをスケーリングするためのもう 1 つの戦略は、たとえば、オフピーク時のリソース消費を削減するためにスケーリング操作をスケジュールすることです。

イベント駆動型の自動スケーリングと同様に、この動作は KEDA とその Cron スケーリング コントローラと組み合わせて使用​​することができ、ワークロードのスケールインまたはスケールアウトのスケジュールを定義できます。

クラスターインフラストラクチャの拡張

ワークロードをスケーリングするだけではニーズを満たせない場合は、クラスター インフラストラクチャ自体をスケーリングすることもできます。

クラスターのスケーリング

クラスター インフラストラクチャをスケーリングすることは、通常、ノードを追加または削除することを意味します。これは、利用可能な 2 つの自動スケーラーのいずれかを使用して実行できます。

  • クラスターオートスケーラー
  • カーペンター

両方のエクスパンダーは、スケジュール不可または十分に使用されていないとマークされたノードを監視し、必要に応じてノードを追加または削除することによって機能します。

要約する

Kubernetes での自動スケーリングとは、Pod を管理するワークロードを自動的に更新し、最終的にワークロードが Pod 定義を更新して自動スケーリングを実現することを指します。主に以下の解決策があります。

  • HPA: 水平スケーリング、Podインスタンス数の拡大と縮小
  • VPA: ポッド内のコンテナのCPUまたはメモリリソースを垂直に拡張または縮小するスケーリング
  • CPA: 比例スケーリング、HPAはクラスターのサイズに比例して実行されます
  • KEDA: イベント駆動型スケーリング、外部イベントまたはトリガーに基づいてポッドを水平方向にスケーリングする
  • クラスターノードのスケーリング: 必要に応じてクラスター内のワーカーノードを追加または削除します。

<<:  CRUD プログラマーしか知らない友人の皆さん、クラウド コンピューティング テクノロジーを採用し始めましたか?

>>:  地方におけるエッジコンピューティング:デジタル格差の解消

推薦する

ユーザーを維持するために、新しいサイトはどのように運営すべきでしょうか?

新しい Web サイトを構築する初期段階では、多くの Web 管理者にとって最大の懸念は、Web サ...

フルサイトリンクの購入がキーワードランキングの低下にどのように影響したかについての簡単な説明

ウェブサイトの最適化担当者にとって最も頭を悩ませるのは、ウェブサイトのキーワードランキングの低下です...

馬華クラウド:香港CN2クラウドサーバー、1元から、1Gメモリ/1コア/50gSSD/2M帯域幅/5g防御

Mahua Cloudは現在、香港のクラウドサーバーのスーパーフラッシュセールを開催しており、香港C...

本の貸し出しサイトは、低価格で市場シェアを獲得するという収益モデルを見つけるのに苦労している

低価格の電子商取引書籍や電子書籍と比較すると、書籍貸出ウェブサイトは誕生したその日から、低価格のマー...

Linodeはどうですか?米国西海岸シアトルデータセンターのクラウドサーバーの評価

Linodeは現在、米国西海岸に3つのデータセンターを所有しており、南から北にロサンゼルス、フリーモ...

SEMに必要なデータ分析

有資格の SEM 担当者として、データ分析能力が必要です。天津ネットワークプロモーション[www.s...

適切なクラウド データベース サービスを選択するための 4 つのヒント

リレーショナル データベースは半世紀も前から存在しており、そのさまざまなサブカテゴリ (ドキュメント...

TUN デバイスの魔法 - フランネル UDP モード

みなさんこんにちは。私は次男です。 「トロイの木馬 - 図解 VXLAN コンテナ ネットワーク通信...

ウェブマスターの収入を増やすために広告枠を合理的に設定する方法

すべてのサイトにとって、トラフィックは基本的にお金に等しいですが、特にトラフィックの多い小説ダウンロ...

Docker 使用状況レポート 2018

[[235661]]概要: 5 つの調査結果は、コンテナの使用傾向を把握するのに役立ちます。より多く...

SEO進化の3つのステップ:実戦+データ+受注変換に基づく

SEO では毎日進歩する必要があります。1 日も進歩が見られない場合は、自分自身を振り返る必要があり...

ウェブサイトを効率的にインデックスする方法 [写真]

1-1: スタート前のポイントSEO は、検索エンジンの出現とともに生まれた統計分析として捉えるべき...

あなたはまだ SEO の古い考え方に囚われていますか?

王世凡は、多くの企業のウェブサイト最適化担当者の SEO 運用方法が「毎日更新 + 毎日外部リンク」...

ECサイトのキーワードランキングで市場を制覇する方法

電子商取引サイトの場合、主なオンライン マーケティング手法は検索エンジン マーケティングです。検索エ...

ユーザーエクスペリエンスがキーワード変動の根本的な原因

ある時、新人の SEO 担当者から、ウェブサイトのキーワードがなぜいつも変動するのかと尋ねられました...