【ブイピーエー】

VPA(垂直Podオートスケーラ) とは?

💡 Podの「体型管理」係。筋肉不足なら増量、食べ過ぎなら減量を自動で指示する。
📌 このページのポイント
VPA vs HPA — スケーリング方式の違い HPA(水平スケール) Pod数を増やす Pod ↑負荷 Pod Pod Pod 1個 → 3個に増加 各Podのリソースは変わらない VPA(垂直スケール) 1 PodのCPU/メモリを増やす Pod CPU: 0.5 Mem: 256M ↑負荷 Pod CPU: 2.0 Mem: 1Gi VPAが 自動調整 リソース量が拡張される Pod数は変わらない(再起動あり) VPAはリソース推奨値を算出してPodに適用。HPAとは原則併用しない
HPAはPod数を増やし、VPAは1つのPodのリソース量を増やす
ひよこ ひよこ

VPAって何をする仕組みなの?

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

KubernetesPodに割り当てるCPUとメモリの量を自動で調整してくれるよ。「このPodCPUが足りなそうだから増やそう」「メモリが余り過ぎているから減らそう」と賢く管理してくれるんだ。

ひよこ ひよこ

HPAっていうのも聞いたことあるけど、違いは何なの?

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

HPAPodの数を増やしたり減らしたりする「水平スケール」だよ。対してVPAは1つのPodに与えるCPUやメモリの量を変える「垂直スケール」なんだ。忙しくなったとき、HPAは「人員を増やす」、VPAは「1人ひとりの能力を強化する」イメージだね。

ひよこ ひよこ

どんな場合にVPAを使うの?

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

リソース設定が難しいアプリに向いているよ。最初から適切なCPU/メモリを設定するのは難しいけど、VPAに任せれば実際の使用量を見て自動で最適な値を算出してくれるんだ。コスト最適化にもなるよ。

ひよこ ひよこ

デメリットはあるの?

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

VPAがリソースを変更するとPod再起動されるんだ。だからデータベースのような再起動に弱いステートフルなアプリは注意が必要だよ。また同じPodHPAとVPAを同時に使うと競合するから、基本的には併用しない方がいいね。

ひよこ ひよこ

自動で値を変えてくれるんだね!設定は必要なの?

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

VPAObjectというカスタムリソースを作って対象のDeploymentと動作モードを指定するよ。モードは「Offで推奨値を表示するだけ」から「Autoで自動適用」まで選べるから、まずOffで様子を見てから自動化するのがおすすめだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「VPA」って出てきたら「PodCPU/メモリを自動調整するKubernetesの仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Vertical Pod Autoscaler」 = 垂直Podオートスケーラ
💬 「水平スケール(Pod数増加)」に対して「垂直スケール(1Podのリソース増加)」という意味で、Horizontal Pod Autoscaler(HPA)の対になる存在だよ。
← 用語集にもどる