Google Kubernetes Engine(GKE)のデプロイモデルは、Kubernetes で独自のオートスケーラーのインフラストラクチャと構成を自己管理する独立したチームに適しています。
このドキュメントはシリーズの一部であり、次のドキュメントも含まれます。
このシリーズは、運用上のオーバーヘッドを削減し、Spanner のデプロイコストを最適化したいと考える、IT、オペレーション、サイト信頼性エンジニアリング(SRE)のチームを対象としています。
GKE デプロイには次のメリットとデメリットがあります。
メリット:
- Kubernetes ベース: Cloud Run functions などのサービスを使用できないチームの場合、Kubernetes にデプロイすると、オートスケーラーを使用できます。
- 構成: スケジューラ パラメータの制御機能は、Spanner インスタンスを所有するチームに属しているので、オートスケーラーをニーズに合わせて適応させるための最高の権限が付与されます。
デメリット:
- インフラストラクチャ: Cloud Run functions の設計と比較して、存続期間が長いインフラストラクチャとサービスがいくつか必要になります。
- メンテナンス: 各チームがオートスケーラーの構成とインフラストラクチャを担当しているため、社内全体ですべてのオートスケーラーが同じアップデート ガイドラインに従っているかを確認するのは難しい場合があります。
- 監査: 各チームによる細かい制御が可能であるため、一元化された監査が複雑になる可能性があります。
このページでは、要件に応じてオートスケーラーを 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 にデプロイする
分離型または統合型のデプロイモデルでオートスケーラーを GKE にデプロイする方法については、GKE デプロイの手順ガイドをご覧ください。
次のステップ
- オートスケーラー ツールを Cloud Run functions にデプロイする方法を学習する。
- Spanner の推奨しきい値について確認する。
- Spanner の CPU 使用率の指標とレイテンシの指標の詳細を確認する。
- Spanner スキーマ設計のベスト プラクティスで、ホットスポットを回避し、データを Spanner に読み込む方法を確認する。
- Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センターをご覧ください。