このドキュメントでは、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 チャート構成を作成する手順は次のとおりです。
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、サービス アノテーション、その他の設定のデフォルト値を決定します。次の表に、Google Kubernetes Engine(GKE)と Amazon EKS のプラットフォーム固有のデフォルト値を示します。
| プロパティ | デフォルト | プラットフォーム | |
|---|---|---|---|
| GKE | Amazon EKS | ||
storageClasses |
- name: my_scprovisioner: kubernetes.io/no-provisionervolumeBindingMode: WaitForFirstConsumer |
- name: hyperdisk-balanced-rwoprovisioner: pd.csi.storage.gke.ioparameters: type: hyperdisk-balanced |
- name: aws-gp3provisioner: ebs.csi.aws.comparameters: type: gp3- name: aws-standardprovisioner: ebs.csi.aws.comparameters: type: standard |
locations |
- name: usnamespace: ""zones:- name: "us-a"shortName: "a"replicas: 1rootServers: 1singleServer: true- name: "us-b"shortName: "b"- name: "us-c"shortName: "c" |
- name: us-east1zones:- name: us-east1-bshortName: a- name: us-east1-cshortName: b- name: us-east1-dshortName: c |
- name: us-east-1zones:- name: us-east-1ashortName: a- name: us-east-1cshortName: b- name: us-east-1dshortName: 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" |
整合性のためのクォーラムを確保するには、ゾーンあたりのルートサーバーの数を 1 ~ 9 の奇数にする必要があります。サーバーの数が偶数の場合、デプロイが失敗する可能性があります。ゾーンを構成するときは、サーバーをルートサーバーとして指定します。開発またはテストには 1 つ、高可用性の本番環境ゾーンには 3 つを使用することをおすすめします。
次のステップ
Helm チャートを使用して、Spanner Omni の Kubernetes にマルチクラスタ デプロイを作成する方法を 確認する。