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

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

推薦する

この記事では、仮想マシンの 4 つのネットワーク モデルについて包括的に説明します (画像とテキスト付き)

01. 物理ネットワークから仮想ネットワークへ有名な「六次の隔たり定理」によれば、世界中の見知らぬ人...

企業ウェブサイトの内部リンクを構築する方法

最近、Wenrou はいくつかのウェブサイトを分析し、問題を発見しました。ほとんどの企業ウェブサイト...

ハイブリッドクラウドの 5 つの主な利点をご存知ですか?

企業は、オンプレミスにプライベート クラウドを展開しながら、ワークロードをパブリック クラウドに移行...

Hivelocityはどうですか?ロサンゼルスデータセンターのクラウドサーバーの簡単なレビュー

Hivelocityはどうですか?ハイベロシティロサンゼルスはどうですか?世界的に有名なデータセンタ...

現状のSEO学習:鍵を握ることが重要

SEO 業界に不慣れな人にとって、SEO を学ぶ方法を知ることは重要な問題です。 SEO を学ぶには...

ウェブマスターネットワークからの毎日のレポート:GoogleとAppleは対立しており、TmallとYixunは価格戦争を激化させている

1. グーグルとアップルが対立:モバイルマップサービスが新たな戦場に北京時間6月5日、海外メディアの...

AWSはアマゾンから分離される可能性、CEOは合意に従うと語る

最近、海外メディアCNBCによると、アマゾンのクラウドコンピューティング事業のCEO、アンディ・ジャ...

最新のテクノロジートレンド: クラウドネイティブアプリケーションにおける RabbitMQ

RabbitMQ は、クラウドネイティブ アプリケーションで重要な役割を果たすオープン ソースのメッ...

1 つの記事でクラウド ネットワークを理解する

企業のデジタル変革により、クラウド コンピューティングの発展が促進されました。中国情報通信研究院の統...

ブログをランク付けする方法

では、良いブログ、影響力のあるブログ、良いランキングを獲得し、真のブランドを確立するにはどうすればい...

「ハートブリーディング」脆弱性が国内の主要ウェブサイトに影響、アリペイ、タオバオなど多くのウェブサイトが修正

「4月8日はハッカーやホワイトハットにとって眠れない夜だ」誰かがこう表現した。午前中はまだ WIN ...

アリとシャオミのフルブランドIPマーケティング

アリババとシャオミのブランドマーケティング手法を整理してまとめたいとずっと思っていました。半年以上の...

urpad-1.5g メモリ/45g ハードディスク/年間 30 ドルの支払い

urpad の openvz を使用したことがある友人は、コスト効率が非常に良く、価値があると言うと...

鉄道省は12306の入札に関する疑問に答えたが、コストなどのデータは言及されていなかった。

原題: 鉄道省が12306チケット予約システム入札に関する質問に回答入札プロセスは公開されており、費...

SEO最適化戦略における外部リンクリソースの巧妙な応用

最近、外部リンクについて勉強しています。今日は、外部リンク リソースの応用についてお話します。外部リ...