AKS におけるアプリケーションのスケーリング

Azure コンピューティングソリューション

Florin Angelescu

Azure Cloud Architect

スケーリングが重要な理由

 

トラフィック少

トラフィック多

 

  • アプリケーションのトラフィックは常に一定ではない:

    • 負荷の低い時間帯がある
    • 急激なスパイクが発生することもある
  • スケーリングなしでは:

    • ワークロードが過負荷になるリスクがある
    • パフォーマンス低下やダウンタイムを招く
Azure コンピューティングソリューション

スケーリングが重要な理由

 

Kubernetes

 

  • Kubernetes はリソースを動的に調整する仕組みを提供する。
  • アプリケーションは需要に効率的に対応できる。
  • スケーリングにより:
    • ユーザーに一貫したエクスペリエンスを提供
    • 組織がコストを最適化できる
Azure コンピューティングソリューション

手動スケーリング

手動スケーリング

kubectl scale を使用して、デプロイメントのレプリカ数を増減させる。

Azure コンピューティングソリューション

手動スケーリング

手動スケーリング

Web アプリを 2 つのレプリカから 4 つにスケーリング:

  • リクエストを処理するポッドが増加する
Azure コンピューティングソリューション

手動スケーリング

 

手動スケーリング

手動スケーリング

 

 

適用場面:

  • 製品ローンチの計画
  • プロモーション
  • セール
Azure コンピューティングソリューション

Horizontal Pod Autoscaler (HPA)

HPA

Azure コンピューティングソリューション

Horizontal Pod Autoscaler (HPA)

HPA

メトリクス(CPU・メモリ使用率)を監視し、レプリカ数を自動調整します。

Azure コンピューティングソリューション

Horizontal Pod Autoscaler (HPA)

HPA

使用率がしきい値を超えた場合:

  • ポッドが追加される
Azure コンピューティングソリューション

Horizontal Pod Autoscaler (HPA)

HPA

需要が低下した場合:

  • ポッドが削除される
Azure コンピューティングソリューション

Horizontal Pod Autoscaler (HPA)

HPA

  • Azure Monitor と統合可能。
  • カスタムメトリクス(リクエストレイテンシ、キュー長)に対応。
Azure コンピューティングソリューション

Cluster Autoscaler

 

オートスケーラー

 

 

  • 需要に応じてノードを追加・削除する。
  • リソース不足でポッドをスケジュールできない場合:
    • 新しいノードが自動的にプロビジョニングされる
Azure コンピューティングソリューション

Cluster Autoscaler

 

オートスケーラー

 

 

  • 需要が減少した場合:

    • 未使用ノードを削除してコストを削減
  • インフラがワークロードに合致:

    • 過剰プロビジョニングなし
Azure コンピューティングソリューション

スケーリングのベストプラクティス

メトリクス

現実的なリソースのリクエストと制限を定義する

組み合わせ

Horizontal Pod Autoscaler と Cluster Autoscaler を組み合わせる

テスト

負荷をかけてスケーリング動作をテストする

コスト

コストを監視する

Azure コンピューティングソリューション

まとめ

 

Kubernetes

  • AKS のスケーリングにより、アプリケーションが需要に自動対応:
    • 手動スケーリング
    • Horizontal Pod Autoscaler
    • Cluster Autoscaler
  • パフォーマンスと効率のバランスを確保する。
Azure コンピューティングソリューション

練習しましょう!

Azure コンピューティングソリューション

Preparing Video For Download...