Help us understand the problem. What is going on with this article?

Wavefrontで学ぶHorizontal Pod Autoscaler ~概要編

この文章は、WavefrontでHorizontal Pod Autoscaler シリーズの第一回目です。

シリーズ

第一回 : 概要編 ← いまここ
第二回 : Wavefront情報からスケールする
第三回 : サーバーレスもどきを実装する

Wavefrontとはなんぞや?

WavefrontとはいうのはSaaSベースのクラウドおよびアプリケーションの監視プラットフォームです。
現在はVMwareに買収されており、Tanzu Observabilityと呼ばれています。
このシリーズでは、旧称のWavefrontを多用しますが同じものです。

Horizontal Pod Autoscalerとはなんぞや?

Horizontal Pod Autoscaler(HPA)とは、KubernetesでデプロイしたPODを負荷をモニターしてスケールアウトする機能です。

https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

HPAを普通に使って何が悪いの?

さて、この機能でよく勘違いされるのが、k8sをインストールした直後にOOTB(Out of the Box)で使えないという点です。

通常はHPAを使えるようになるためには、なんらかのメトリクスを収集する別のツールが必要です。
有名なのが、metrics-serverです。

https://github.com/kubernetes-sigs/metrics-server

ただし、かかれている通り、CPU、Memoryにのみの対応です。
さらによくある問題として、「ほんとうにCPUがそのとき高かったの?」問題です。結局のところOpsチームはモニターダッシュボードをみていて、そのCPU、MemoryがうまくAutoScaleの事象に合わないといらぬコミュニケーション問題に発展しかねないです。

Prometheusは?

PrometheusをHPAのソースとして使うというのは昨今外国のブログで紹介されています。
例えば以下です。

https://towardsdatascience.com/kubernetes-hpa-with-custom-metrics-from-prometheus-9ffc201991e

ただし、これも注意しないといけないのが、Prometheusを本番業務に影響を与えるコンポーネントに昇格させてしまう点です。Prometheusの運用に慣れていない場合やHAの構成をとれていない場合、あまりお勧めができない構成となってしまいます。

じゃあどうするの?

そこでWavefrontですよ。
Wavefrontでは昨今のTanzu情勢から、kubernetesの連携を強めており、正式にHPAのアダプターをサポートしています。

https://github.com/wavefrontHQ/wavefront-kubernetes-adapter

英語ですが以下の動画でも取り上げて説明されています。

IMAGE ALT TEXT HERE
https://www.youtube.com/watch?v=nZnbdNHFNyU

これを使うことのメリットとして

  • Opsが見ているダッシュボードと同じメトリクスでHPAができる
  • CPU、Memory以外の好きなメトリクスで自由に定義できる
  • SaaSならではの、可用性(%99.95 Availability)とパフォーマンス保証

このシリーズはなんぞや?

HPAというものを長らく存在を知っておきながら、いまだkubernetesの飛び道具的存在であり、手を出すの躊躇していたのはきっと私だけではないはず。

このシリーズでは、WavefrontというSaaSモデルでサポートされているシステムでHPAを構成してみて、今一度HPAがどのように動くものなのか理解を深めるというものです。

次回は「Wavefront情報からスケールする」です。

hmachi
VMware Tanzuで頑張り始めました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away