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

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

💡 混んだら自動で窓口を増やして、空いたら減らしてくれる仕組み
📌 このページのポイント
HPA(水平Podオートスケーラ)の動作 Metrics Server CPU 85% HPA コントローラ 目標: CPU 70% → Podを増やす replicas=3 ReplicaSet Pod 稼働中 Pod 稼働中 Pod 追加 ✓ min: 1 / 現在: 3 / max: 10 範囲内で自動調整 負荷が下がればPodを自動削減(スケールイン) カスタムメトリクス(HTTPリクエスト数・キュー長など)を使うとより精度の高いスケーリングが可能 Cluster Autoscaler と組み合わせるとノード自体も自動追加される
HPA:CPU使用率などの指標を監視してPod数を自動で増減する
ひよこ ひよこ

HPAって何をしてくれるの?

ペンギン先生 ペンギン先生

Kubernetesクラスターの中で動いているPodの数を、負荷に合わせて自動で増減してくれる仕組みだよ。アクセスが急増したら自動でPodを追加して処理を分散するんだね

ひよこ ひよこ

どうやって「増やす必要がある」って判断するの?

ペンギン先生 ペンギン先生

CPU使用率が基本の指標で、たとえば「CPUが70%を超えたらPodを増やす」という設定をするよ。HPAは定期的にメトリクスを取得して、目標値に近づくよう計算してPod数を調整するんだ

ひよこ ひよこ

無限にPodが増え続けることはないの?

ペンギン先生 ペンギン先生

ないよ!設定で最小数(minReplicas)と最大数(maxReplicas)を決めておくから、その範囲内でしか変化しないんだ。ノードのリソースも有限だから上限は大事だね

ひよこ ひよこ

カスタムメトリクスって難しそうだけど?

ペンギン先生 ペンギン先生

PrometheusなどのモニタリングツールとPrometheus Adapterを組み合わせると、HTTPリクエスト数やキューの長さを指標にできるよ。CPUより「実際の仕事量」に近い指標でスケールできるから精度が上がるんだ

ひよこ ひよこ

VPAとはどう使い分けるの?

ペンギン先生 ペンギン先生

HPAはPodの数を増やして処理を横に分散する。VPAは1つのPodに割り当てるCPU・メモリを増やして縦に強化する感じだよ。ステートレスなWebサーバーはHPA向きで、DBのような分散が難しいものはVPAが向いていることが多いんだ

ひよこ ひよこ

組み合わせて使うこともできるの?

ペンギン先生 ペンギン先生

できるんだけど、HPAとVPAを同じメトリクスで同時に使うと競合するから注意が必要だよ。Cluster Autoscalerと組み合わせると、Pod数が増えてノードが足りなくなったときにノード自体も自動追加されて、よりスムーズに拡張できるんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「HPA」って出てきたら「Kubernetesが負荷に合わせてPodの数を自動調整する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Horizontal Pod Autoscaler」 = 水平Podオートスケーラ
💬 「Horizontal(水平)」はPodの数を増やす方向(横に広げる)を意味するよ。スペックを上げる「Vertical(垂直)」と対比して使われる言葉だね
← 用語集にもどる