Spanner Omni の Helm チャート構成を作成する

このドキュメントでは、Kubernetes 上の Spanner Omni の Helm 構成を作成する方法について説明します。

概要

Kubernetes での Spanner Omni デプロイ用に Helm チャートを構成します。利用可能な構成オプションを確認して、デプロイをカスタマイズします。Helm テンプレートには global.platform プロパティが含まれています。このプロパティは、選択したプラットフォームに基づいて、StorageClass やサービス アノテーションなどのキー設定のデフォルト値を設定します。

Helm チャートが Google Kubernetes Engine(GKE)と Amazon Elastic Kubernetes Service(Amazon EKS)にプラットフォーム固有のデフォルト値を適用する方法を理解する。これらのデフォルトは、ストレージ クラス、データ ロケーション、サービス アノテーションなどの構成を対象としています。これらの設定は、各プラットフォームの特定のデプロイ要件に合わせてカスタマイズします。

始める前に

まだインストールしていない場合は、Helm をインストールします。

Helm チャートの構成を準備する

Helm チャート構成を作成する手順は次のとおりです。

  1. helm show values コマンドを使用して、デプロイの作成に使用できる構成オプションを確認します。

    helm show values oci://us-docker.pkg.dev/spanner-omni/charts/spanner-omni --version 0.1.0
    

    デプロイの作成に関するドキュメントでは、--set フラグを使用してさまざまなオプションを指定しています。これらのオプションは YAML ファイルで指定し、helm コマンドで -f フラグを使用することもできます。デプロイを容易にするため、Helm テンプレートには global.platform プロパティが含まれています。このプロパティは、プラットフォームに基づいて StorageClass、サービス アノテーション、その他の設定のデフォルト値を決定します。

  2. 次の表に、Google Kubernetes Engine(GKE)と Amazon EKS のプラットフォーム固有のデフォルト値をまとめます。

プロパティ デフォルト プラットフォーム
GKE Amazon EKS
storageClasses - name: my_sc
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
- name: hyperdisk-balanced-rwo
provisioner: pd.csi.storage.gke.io
parameters:
  type: hyperdisk-balanced
- name: aws-gp3
provisioner: ebs.csi.aws.com
parameters:
  type: gp3
- name: aws-standard
provisioner: ebs.csi.aws.com
parameters:
  type: standard
locations - name: us
namespace: ""
zones:
- name: "us-a"
shortName: "a"
replicas: 1
rootServers: 1
singleServer: true
- name: "us-b"
shortName: "b"
- name: "us-c"
shortName: "c"
- name: us-east1
zones:
- name: us-east1-b
shortName: a
- name: us-east1-c
shortName: b
- name: us-east1-d
shortName: c
- name: us-east-1
zones:
- name: us-east-1a
shortName: a
- name: us-east-1c
shortName: b
- name: us-east-1d
shortName: c
dataStorageClass <default> premium-rwo aws-gp3
logsStorageClass <default> standard-rwo aws-standard
serviceAnnotations null networking.gke.io/load-balancer-type: "Internal"
networking.gke.io/internal-load-balancer-allow-global-access: "true"
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"

次のステップ