負荷の生成
HPAが設定し たポリシーに応じてスケールアウトする様子を観察するために、アプリケーションに負荷をかける必要があります。heyを使用してワークロードのホームページを呼び出すことで負荷を生成します。
以下のコマンドは、次のパラメータで負荷ジェネレータを実行します:
- 10ワーカーが同時に実行
- 各ワーカーが1秒あたり5クエリを送信
- 最大60分間実行
~$kubectl run load-generator \
--image=williamyeh/hey:latest \
--restart=Never -- -c 10 -q 5 -z 60m http://ui.ui.svc/home
アプリケーションへのリクエストが発生し始めたら、HPAリソースを監視して進捗状況を確認できます:
~$kubectl get hpa ui -n ui --watch
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
ui Deployment/ui 69%/80% 1 4 1 117m
ui Deployment/ui 99%/80% 1 4 1 117m
ui Deployment/ui 89%/80% 1 4 2 117m
ui Deployment/ui 89%/80% 1 4 2 117m
ui Deployment/ui 84%/80% 1 4 3 118m
ui Deployment/ui 84%/80% 1 4 3 118m
オートスケーリングの動作に満足したら、Ctrl+Cで監視を終了し、次のように負荷ジェネレータを停止できます:
~$kubectl delete pod load-generator
負荷ジェネレータが終了すると、HPAは設定に基づいてレプリカ数をゆっくりと最小数まで減らしていきます。