Autoscaler ツールを GKE にデプロイする

Google Kubernetes Engine(GKE)のデプロイモデルは、Kubernetes で独自の Autoscaler のインフラストラクチャと構成をセルフマネージする独立したチームに適しています。

このドキュメントは、次のドキュメントを含むシリーズの一部です。

このシリーズは、運用上のオーバーヘッドを削減し、Cloud Spanner のデプロイコストを最適化したいと考える、IT、オペレーション、サイト信頼性エンジニアリング(SRE)のチームを対象としています。

GKE デプロイには次のメリットとデメリットがあります。

メリット:

  • Kubernetes ベース: Cloud Run 関数などのサービスを使用できないチームの場合、Kubernetes にデプロイすると、Autoscaler を使用できます。
  • 構成: スケジューラ パラメータの制御機能は、Spanner インスタンスを所有するチームに属しているので、オートスケーラーをニーズに合わせて適応させるための最高の権限が付与されます。

デメリット:

  • インフラストラクチャ: Cloud Run functions の設計と比較して、長期間存続するインフラストラクチャとサービスがいくつか必要になります。
  • メンテナンス: 各チームが Autoscaler の構成とインフラストラクチャを担当しているため、社内全体ですべての Autoscaler が同じアップデート ガイドラインに従っているかを確認するのは難しい場合があります。
  • 監査: 各チームによる管理レベルが高いため、一元化された監査が複雑になる可能性があります。

このページでは、要件に応じて Autoscaler を GKE にデプロイする 2 つの方法について説明します。

  • 分離されたデプロイ トポロジ。分離されたデプロイモデルには、Poller コンポーネントと Scaler コンポーネントに個別の権限を割り当て、個別のサービス アカウントとして実行できるという利点があります。つまり、ニーズに合わせて 2 つのコンポーネントを柔軟に管理、スケーリングできます。ただし、このデプロイモデルでは、Scaler コンポーネントを長時間実行サービスとしてデプロイする必要があります。これにより、リソースが消費されます。
  • 統合されたデプロイ トポロジ。統合デプロイモデルには、Poller コンポーネントと Scaler コンポーネントを単一の Pod としてデプロイし、Kubernetes cron ジョブとして実行できるという利点があります。2 つのコンポーネントが単一の Pod としてデプロイされている場合、長時間実行コンポーネントはなく、必要なサービス アカウントは 1 つだけです。

ほとんどのユースケースでは、統合デプロイ モデルをおすすめします。

構成

オートスケーラー ツールは、Kubernetes ConfigMap で定義された構成を使用して Spanner インスタンスを管理します。複数の Spanner インスタンスを同じ間隔でポーリングする必要がある場合は、同じ ConfigMap でそれらを構成することをおすすめします。2 つの Spanner インスタンスを 1 つの構成で管理する構成の例を次に示します。

apiVersion: v1
kind: ConfigMap
metadata:
  name: autoscaler-config
  namespace: spanner-autoscaler
data:
  autoscaler-config.yaml: |
    ---
    - projectId: spanner-autoscaler-test
      instanceId: spanner-scaling-linear
      units: NODES
      minSize: 5
      maxSize: 30
      scalingMethod: LINEAR
    - projectId: spanner-autoscaler-test
      instanceId: spanner-scaling-threshold
      units: PROCESSING_UNITS
      minSize: 100
      maxSize: 3000
      metrics:
      - name: high_priority_cpu
        regional_threshold: 40
        regional_margin: 3

1 つのインスタンスには、通常運用に対する線形方式のオートスケーラー構成を保持できますが、それに加えて、計画されたバッチ ワークロード用に直接方式による別のオートスケーラー構成を保持することもできます。構成オプションの一覧は、Poller README ファイルをご覧ください。

GKE にデプロイする

分離型または統合型のデプロイモデルで Autoscaler を GKE にデプロイする方法については、GKE デプロイのチュートリアルをご覧ください。

次のステップ