【ケダ】

KEDA とは?

最終更新:
💡 外部の指標に合わせて、Pod数を増減する

Kubernetes Event-Driven Autoscalingの略。キューやメトリクスなどに基づいて、KubernetesのワークロードのPod数をHPAと連携して増減する仕組み。条件に応じて0個への縮小もできる。

📌 このページのポイント
外部の指標で、ワーカー数を調整キューなど外部の指標KEDA指標を渡すHPA数を調整0個待機1個PN個PPPKEDAHPA0個への縮小は、対応する設定で可能Pod数が0でも、費用全体は別
上段の矢印はスケール指標の受け渡し、下段はPod数の増減を示します。ゼロへの縮小を有効にした基本構成の模式図で、監視や起動、縮小の待ち時間があります。
ひよこ ひよこ
KEDAって何をするもの?
ペンギン先生 ペンギン先生
Kubernetesで、外部の指標に応じてPodの数を増減させる仕組みだよ。例えばKafkaで処理待ちが増えたらワーカーを増やす。KEDAが指標をHPAへ渡して調整するので、メッセージ100件なら必ずPod10個、という固定ルールではないんだ
ひよこ ひよこ
0個からでも起動できるの?
ペンギン先生 ペンギン先生
対応するスケーラーと設定なら、仕事がないときは0個まで減らし、イベントを検知したら起動できるよ。基本的にKEDAが0と1の間を扱い、1個以上の増減はHPAが扱う。最小数を1以上にするなど、0個にならない設定もあるね
ひよこ ひよこ
0個なら費用もゼロになる?
ペンギン先生 ペンギン先生
対象ワークロードのPodを動かさずに済むけれど、クラスタのノードや管理部分、イベント元などの費用は別だよ。Pod数の削減と請求額が同じ割合で減るとは限らない。非同期ワーカーなどでは、待機中のリソース使用を減らすために使えるね
ひよこ ひよこ
どう設定するの?
ペンギン先生 ペンギン先生
ScaledObjectに対象のDeploymentなど、イベントの条件、目標値、最小・最大のPod数を書くよ。必要に応じてイベント元の認証も設定する。KEDAの導入、対象ワークロード、接続先の準備も必要で、YAMLだけ書けば何でも動くわけではないんだ
ひよこ ひよこ
イベントが来たら、すぐ増える?
ペンギン先生 ペンギン先生
イベントの確認間隔やPodの起動時間があるので、待ち時間はあるよ。0個へ戻すときも、イベントの条件が非アクティブになってからの待機時間などに従う。瞬時に増減すると考えず、実際の仕事の量や起動時間を確かめて設定しよう
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「KEDA」って出てきたら「キューやイベントの量でPodをスケールするKubernetesの仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Kubernetes Event-Driven Autoscaling」 = Kubernetesイベント駆動オートスケーリング
💬 「イベントによって駆動されるスケーリング」という意味で、キューの件数やメッセージの発生に応じてKubernetesリソースを動的に制御するよ。

参考資料

← 用語集にもどる