【えいちぴーえー(すいへいぽっどおーとすけーら)】

HPA(水平Podオートスケーラ) とは?

最終更新:
💡 混んだら自動で窓口を増やして、空いたら減らしてくれる仕組み

Kubernetesでメトリクスに応じて対象ワークロードの希望レプリカ数を調整し、Podの数を増減する仕組み。CPUなどのリソース指標やカスタム・外部指標を利用できる。

📌 このページのポイント
HPA:対象のPod数を調整 CPU使用率を使う例 メトリクス API 平均85% HPA 目標70% 希望数を調整 対象 Deployment 希望3個 現在2個 × 85 ÷ 70 → 切り上げて3個 使用率の分母はCPU requests Pod Pod 追加Pod 例:最小1・最大10の範囲で調整
全Podの指標取得ができる場合の基本計算例。許容幅や欠測、安定化設定によって実際の動作は変わります。追加Podを置く資源が必要で、HPA自体はノードを増やしません。
ひよこ ひよこ
HPAって何をしてくれるの?
ペンギン先生 ペンギン先生
Deploymentなど、指定したワークロードの希望レプリカ数を定期的に増減するよ。Podの数を増やすのが水平スケーリング。クラスター内の全Podをまとめて増やすわけではないんだ。
ひよこ ひよこ
CPUが70%を超えたら一つ増やすの?
ペンギン先生 ペンギン先生
CPU使用率の目標を70%にする例なら、CPU requestsに対する使用率の平均を使うよ。基本は「現在のレプリカ数×現在値÷目標値」を切り上げて計算する。許容幅やメトリクスの欠測なども考慮するので、一つずつ増やす単純なルールではないんだ。
ひよこ ひよこ
CPU指標を使うために何が必要?
ペンギン先生 ペンギン先生
対象のCPU requestsを設定し、リソースメトリクスAPIから値を取得できる必要があるよ。通常はMetrics Serverを別途用意する。必要なrequestsがないと、CPU使用率が定義できず、その指標では調整できないんだ。
ひよこ ひよこ
Podを増やせば必ず処理が速くなるの?
ペンギン先生 ペンギン先生
希望数にはminReplicasとmaxReplicasで上下限を設けるよ。でも追加Podを配置する資源や、処理を分散できるアプリの設計も必要。HPA自体はノードを増やさないし、負荷が下がった直後に必ず数を減らすわけでもないんだ。
ひよこ ひよこ
CPU以外の指標やVPAも使えるの?
ペンギン先生 ペンギン先生
カスタム・外部メトリクスAPIを用意すると、リクエスト数やキュー長などを使う設計もできるよ。VPAはPodのCPU・メモリのrequestsなどを調整する別の仕組み。HPAと同じリソースを基準に制御する場合は、互いの調整への影響を確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「HPA」って出てきたら「Kubernetesが負荷に合わせてPodの数を自動調整する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Horizontal Pod Autoscaler」 = 水平Podオートスケーラ
💬 「Horizontal(水平)」はPodの数を増やす方向(横に広げる)を意味するよ。スペックを上げる「Vertical(垂直)」と対比して使われる言葉だね

参考資料

← 用語集にもどる