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 デプロイのチュートリアルをご覧ください。
次のステップ
- Autoscaler ツールを Cloud Run 関数にデプロイする方法を学習する。
- Spanner の推奨しきい値について確認する。
- Spanner の CPU 使用率の指標とレイテンシの指標の詳細を確認する。
- Spanner スキーマ設計のベスト プラクティスで、ホットスポットを回避し、データを Spanner に読み込む方法を確認する。
- Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センターをご覧ください。