この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

HPAに関する背景情報

水平ポッドオートスケーラー(HPA)は、Kubernetesの機能で、クラスタが実行しているサービスを自動的にスケールアップまたはスケールダウンできるように構成できます。このセクションでは、HPAがKubernetesとどのように連携するかについて説明します。

水平ポッドオートスケーラーを使用する理由は?

HPAを使用すると、レプリケーションコントローラー、デプロイメント、またはレプリカセット内のポッドの数を自動的にスケールアップまたはスケールダウンできます。HPAは、最大効率のために実行中のポッドの数を自動的にスケールアップまたはスケールダウンします。ポッドの数に影響を与える要因は次のとおりです:

  • ユーザーによって定義された、実行を許可されるポッドの最小および最大数。

  • リソースメトリクスで報告されるCPU/メモリの使用状況。

  • Prometheus、Datadogなどのサードパーティメトリクスアプリケーションによって提供されるカスタムメトリクス。

HPAは、次のようにサービスを改善します:

  • 過剰な数のポッドによって無駄になるハードウェアリソースを解放します。

  • サービスレベル契約を達成するために、必要に応じてパフォーマンスを増減させます。

HPAの動作方法

HPAスキーマ

HPAは制御ループとして実装されており、以下の`kube-controller-manager`フラグによって制御される周期を持っています:

フラグ デフォルト 説明

--horizontal-pod-autoscaler-sync-period

30s

HPAがデプロイメント内のリソース/カスタムメトリクスを監査する頻度。

--horizontal-pod-autoscaler-downscale-delay

5m0s

ダウンスケール操作が完了した後、HPAが別のダウンスケール操作を開始するまでの待機時間。

--horizontal-pod-autoscaler-upscale-delay

3m0s

アップスケール操作が完了した後、HPAが別のアップスケール操作を開始するまでの待機時間。

HPAに関する完全なドキュメントについては、 Kubernetesドキュメントを参照してください。

水平ポッドオートスケーラーAPIオブジェクト

HPAはKubernetes autoscaling APIグループのAPIリソースです。現在の安定版は`autoscaling/v1`で、CPUオートスケーリングのサポートのみが含まれています。メモリやカスタムメトリクスに基づくスケーリングの追加サポートを得るには、代わりにベータ版を使用してください: autoscaling/v2beta1

HPA APIオブジェクトに関する詳細情報は、 HPA GitHub Readmeを参照してください。