Kubernetes に AlloyDB Omni をインストールする

このページでは、AlloyDB Omni Kubernetes オペレーターの概要と、これを使用して AlloyDB Omni を Kubernetes クラスタにデプロイする手順について説明します。このページでは、Kubernetes のオペレーションについて基本的な知識があることを前提としています。

標準の Linux 環境に AlloyDB Omni をインストールする手順については、AlloyDB Omni をインストールするをご覧ください。

概要

AlloyDB Omni を Kubernetes クラスタにデプロイするには、Google が提供する Kubernetes API の拡張機能である AlloyDB Omni Operator をインストールします。

Kubernetes ベースの AlloyDB Omni データベース クラスタを構成して制御するには、他の Kubernetes ベースのデプロイと同様に、宣言マニフェスト ファイルを kubectl ユーティリティとペア設定します。AlloyDB Omni CLI は使用しません。これは、Kubernetes クラスタではなく、個々の Linux マシンへのデプロイを目的としています。

始める前に

次のアクセス権が必要です。

Kubernetes クラスタ内の各ノードには、次のものが必要です。

  • 2 基以上の x86 または AMD64 CPU。
  • 8 GB 以上の RAM。
  • Linux カーネル バージョン 4.18 以降。
  • コントロール グループ v2(cgroup v2)が有効になっている。

Helm チャートを使用

リポジトリ alloydb-omni-samples の Helm チャートを使用して、このガイドに示すコンポーネントをデプロイできます。

AlloyDB Omni オペレーターをインストールする

AlloyDB Omni Operator をインストールする手順は次のとおりです。

  1. いくつかの環境変数を定義します。

    export GCS_BUCKET=alloydb-omni-operator
    export HELM_PATH=$(gcloud storage cat gs://$GCS_BUCKET/latest)
    export OPERATOR_VERSION="${HELM_PATH%%/*}"
  2. AlloyDB Omni オペレーターをダウンロードします。

    gcloud storage cp gs://$GCS_BUCKET/$HELM_PATH ./ --recursive
  3. AlloyDB Omni Operator をインストールします。

    helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
    --create-namespace \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m

    インストールが正常に完了すると、次の出力が表示されます。

    NAME: alloydbomni-operator
    LAST DEPLOYED: CURRENT_TIMESTAMP
    NAMESPACE: alloydb-omni-system
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    
  4. ダウンロードした AlloyDB Omni Operator インストール ファイルを削除してクリーンアップします。ファイル名は alloydbomni-operator-VERSION_NUMBER.tgz で、現在の作業ディレクトリにあります。

データベース クラスタを作成する

AlloyDB Omni データベース クラスタには、プライマリ サーバー、レプリカ、すべてのデータなど、AlloyDB Omni サーバーの実行に必要なすべてのストレージ リソースとコンピューティング リソースが含まれています。

Kubernetes クラスタに AlloyDB Omni Operator をインストールしたら、次のようなマニフェストを適用して Kubernetes クラスタに AlloyDB Omni データベース クラスタを作成できます。

apiVersion: v1
kind: Secret
metadata:
  name: db-pw-DB_CLUSTER_NAME
type: Opaque
data:
  DB_CLUSTER_NAME: "ENCODED_PASSWORD"
---
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
  name: DB_CLUSTER_NAME
spec:
  databaseVersion: "15.5.2"
  primarySpec:
    adminUser:
      passwordRef:
        name: db-pw-DB_CLUSTER_NAME
    resources:
      cpu: CPU_COUNT
      memory: MEMORY_SIZE
      disks:
      - name: DataDisk
        size: DISK_SIZE
        storageClass: standard

次のように置き換えます。

  • DB_CLUSTER_NAME: このデータベース クラスタの名前(例: my-db-cluster)。

  • ENCODED_PASSWORD: デフォルトの postgres ユーザーロールのデータベース ログイン パスワード。base64 文字列としてエンコードされます(例: ChangeMe123 の場合は Q2hhbmdlTWUxMjM=)。

  • CPU_COUNT: このデータベース クラスタ内の各データベース インスタンスで使用できる CPU の数。

  • MEMORY_SIZE: このデータベース クラスタのデータベース インスタンスあたりのメモリ量。CPU ごとに 8 ギガバイトに設定することをおすすめします。たとえば、このマニフェストの前半で cpu2 に設定した場合は、memory16Gi に設定することをおすすめします。

  • DISK_SIZE: データベース インスタンスあたりのディスクサイズ(例: 10Gi)。

このマニフェストを適用すると、Kubernetes クラスタに、指定されたメモリ、CPU、ストレージ構成の AlloyDB Omni データベース クラスタが含まれます。新しいデータベース クラスタとのテスト接続を確立するには、事前インストールされた psql を使用して接続するをご覧ください。

Kubernetes マニフェストとその適用方法の詳細については、リソースの管理をご覧ください。

次のステップ