標準の Linux 環境に AlloyDB Omni をインストールする手順については、AlloyDB Omni をインストールするをご覧ください。
概要
AlloyDB Omni を Kubernetes クラスタにデプロイするには、Google が提供する Kubernetes API の拡張機能である AlloyDB Omni Operator をインストールします。
Kubernetes ベースの AlloyDB Omni データベース クラスタを構成して制御するには、他の Kubernetes ベースのデプロイと同様に、宣言型のマニフェスト ファイルを kubectl ユーティリティと組み合わせます。AlloyDB Omni CLI は使用しません。これは、Kubernetes クラスタではなく、個々の Linux マシンへのデプロイを目的としています。
ベースイメージ
バージョン 1.5.0 以降では、AlloyDB Omni Operator Kubernetes イメージは Red Hat の Universal Base Image(UBI)9 をベースに構築されています。この移行により、デプロイのセキュリティ、一貫性、コンプライアンスが強化されます。
AlloyDB Omni Operator 1.1.0(以降)の互換性
AlloyDB Omni のバージョン 15.5.3 および 15.5.4 と AlloyDB Omni Operator バージョン 1.1.0 は互換性がありません。これらのバージョンの AlloyDB Omni を使用している場合、次のようなエラーが発生することがあります。
Error from server (Forbidden): error when creating "[...]/dbcluster.yaml": admission webhook "vdbcluster.alloydbomni.dbadmin.goog" denied the request: unsupported database version 15.5.3
始める前に
AlloyDB Omni Operator を使用して Kubernetes クラスタに AlloyDB Omni をインストールする前に、次の要件を満たしていることを確認してください。
ダウンロード オプションまたはインストール オプションを選択する
汎用 Kubernetes クラスタでワークロードを管理する場合は、Helm または OLM を使用できます。Helm は、Helm チャートを使用して、すべての Kubernetes バリアントでオペレーターを含むワークロードをインストールするユニバーサル パッケージ マネージャーです。OLM(OpenShift プラットフォームで推奨される標準)は、専用の OLM バンドルを使用してオペレーターのライフサイクルを管理します。
環境とツールに応じて、次のいずれかのデプロイ方法を選択します。
| メディア | ダウンロード場所とインストール ガイド | デプロイ先 |
|---|---|---|
| Helm チャートを使用した AlloyDB Omni Operator | Kubernetes に AlloyDB Omni をインストールする | お客様所有の Kubernetes コンテナ環境(オンプレミス、パブリック クラウド、GKE、Amazon EKS、Azure AKS など) ヒント: CD(継続的デリバリー)ツールが Helm と統合されている場合は、このオプションを使用します。 |
| OLM バンドルの AlloyDB Omni Operator | OperatorHub.io | お客様所有の Kubernetes コンテナ環境(オンプレミス、パブリック クラウド、Google Kubernetes Engine、Amazon EKS、Azure AKS など) OLM バンドルを使用するには、オペレーターをインストールする前に Kubernetes クラスタに OLM をインストールします。詳細については、olm.operatorframework.io をご覧ください。 ヒント: CD(継続的デリバリー)ツールで OLM がすでに使用されている場合は、このオプションを選択します。 |
| OLM バンドルの OpenShift Operator | OpenShift Container Platform ウェブ コンソール | OpenShift 環境 Kubernetes のバリアントである OpenShift は、Operator のパッケージ化とデプロイの標準の組み込みメソッドとして OLM を使用します。 |
アクセス権の確認
以下に対するアクセス権をあることを確認します。
- 次のソフトウェアを実行している Kubernetes クラスタ。
- Kubernetes バージョン 1.21 以降。
cert-managerサービス。
kubectlユーティリティ。helmパッケージ管理システムまたは Operator Lifecycle Manager。
ハードウェアとソフトウェアの要件を満たす
Kubernetes クラスタ内の各ノードには、次のものが必要です。
- 2 個以上の x86 CPU または AMD64 CPU。
- 8 GB 以上の RAM。
- Linux カーネル バージョン 4.18 以降。
- コントロール グループ(cgroup)v2 が有効になっている。
AlloyDB Omni Operator をインストールする
AlloyDB Omni Operator は、Helm や Operator Lifecycle Manager(OLM)など、さまざまな方法でインストールできます。
Helm
AlloyDB Omni Operator をインストールする手順は次のとおりです。
- 次の環境変数を定義します。
export HELM_PATH=$(curl https://storage.googleapis.com/alloydb-omni-operator/latest) export OPERATOR_VERSION="${HELM_PATH%%/*}" - AlloyDB Omni Operator をダウンロードします。
curl -X GET -o "./alloydbomni-operator-${OPERATOR_VERSION}.tgz" "https://storage.googleapis.com/storage/v1/b/alloydb-omni-operator/o/$(echo ${HELM_PATH} | sed 's/\//%2F/g')?alt=media" - 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
- クリーンアップするには、ダウンロードした AlloyDB Omni Operator のインストール ファイルを削除します。ファイル名は
alloydbomni-operator-VERSION_NUMBER.tgzで、現在の作業ディレクトリに配置されます。
OLM
Operator Lifecycle Manager を使用して AlloyDB Omni Operator をインストールする手順は次のとおりです。
AlloyDB Omni Operator ページに移動します。
[Install(インストール)] をクリックします。まだ行っていない場合は、手順に沿って OLM オペレータと OperatorHub.io カタログのみをインストールします。
alloydb-omni-systemNamespace がまだ存在しない場合は、作成します。kubectl create ns alloydb-omni-system
OLM
OperatorGroupを設定して、オペレータがクラスタ スコープであることを確認します。kubectl apply -f - <<EOF apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: operator-sdk-og namespace: alloydb-omni-system spec: upgradeStrategy: Default EOF
OLM Subscription リソースを使用してオペレーターをインストールします。
kubectl apply -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: my-alloydb-omni-operator namespace: alloydb-omni-system spec: channel: stable name: alloydb-omni-operator source: operatorhubio-catalog sourceNamespace: olm EOF
デフォルトの証明書
ClusterIssuerをインストールします。カスタム証明書発行者を使用する場合は、この手順は省略可能です。kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: alloydbomni-selfsigned-cluster-issuer spec: selfSigned: {} EOF
OLM
OLM を使用して Red Hat OpenShift 環境に AlloyDB Omni Operator をインストールするには、Red Hat OpenShift ウェブ コンソールにログインします。
[Operators] > [OperatorHub] を選択します。
検索フィールドを使用して AlloyDB Omni Operator を見つけます。
[AlloyDB Omni Operator] ペインで、[Install] をクリックします。
デフォルトの証明書
ClusterIssuerをインストールします。カスタム証明書発行者を使用する場合は、この手順は省略可能です。kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: alloydbomni-selfsigned-cluster-issuer spec: selfSigned: {} EOF
GDC 接続ストレージを構成する
AlloyDB Omni Operator を GDC(接続済み)にインストールするには、GDC に接続済みのクラスタではデフォルトのストレージ クラスが設定されないため、追加の手順でストレージを構成する必要があります。AlloyDB Omni データベース クラスタを作成する前に、デフォルトのストレージ クラスを設定する必要があります。
Symcloud Storage をデフォルトのストレージ クラスとして設定する方法については、Symcloud Storage をデフォルトのストレージ クラスとして設定するをご覧ください。
他のすべてのストレージ クラスのデフォルトを変更する方法については、デフォルトの StorageClass を変更するをご覧ください。
データベース クラスタを作成する
AlloyDB Omni データベース クラスタには、プライマリ サーバー、レプリカ、すべてのデータなど、AlloyDB Omni サーバーの実行に必要なすべてのストレージ リソースとコンピューティング リソースが含まれています。
AlloyDB Omni データベース クラスタを作成する手順は次のとおりです。
データベース クラスタ専用の Namespace を作成します。これにより、分離性とセキュリティ性が高まります。
kubectl create namespace DB_CLUSTER_NAMESPACEDB_CLUSTER_NAMESPACEは、データベース クラスタを作成する Namespace に置き換えます(例:my-db-cluster-namespace)。次の内容で
db-cluster.yamlという名前のマニフェスト ファイルを作成します。このマニフェストは、データベース パスワードの Secret と DBCluster リソース自体を定義するものです。apiVersion: v1 kind: Secret metadata: name: db-pw-DB_CLUSTER_NAME namespace: DB_CLUSTER_NAMESPACE type: Opaque data: DB_CLUSTER_NAME: "ENCODED_PASSWORD" --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME namespace: DB_CLUSTER_NAMESPACE spec: databaseVersion: "17.5.0" # Optional: Specify the base OS type for the database image. # Valid values are "Debian" and "UBI9". # If not specified, the operator defaults to "Debian" for databaseVersion < 16.9.0 # and "UBI9" for databaseVersion 16.9.0 or later. # databaseImageOSType: "OS_TYPE" primarySpec: adminUser: passwordRef: name: db-pw-DB_CLUSTER_NAME resources: cpu: CPU_COUNT memory: MEMORY_SIZE disks: - name: DataDisk size: DISK_SIZE次のように置き換えます。
DB_CLUSTER_NAME: このデータベース クラスタの名前。例:my-db-clusterOS_TYPE: 省略可。データベース イメージのベース オペレーティング システムのタイプ。有効な値はDebianとUBI9です。これを指定しない場合、databaseVersionが16.9.0より小さい場合はDebianに、databaseVersionが16.9.0以上の場合はUBI9に自動的に設定されます。ENCODED_PASSWORD: デフォルトのpostgresユーザーロールのデータベース ログイン パスワード。base64 文字列としてエンコードされます。例:ChangeMe123の場合はQ2hhbmdlTWUxMjM=CPU_COUNT: このデータベース クラスタ内の各データベース インスタンスで使用できる CPU の数。MEMORY_SIZE: このデータベース クラスタのデータベース インスタンスあたりのメモリ量。CPU ごとに 8 GB に設定することをおすすめします。たとえば、このマニフェストの前半でcpuを2に設定した場合は、memoryを16Giに設定することをおすすめします。DISK_SIZE: データベース インスタンスあたりのディスクサイズ。例:10Gi
作成したマニフェストを Kubernetes のクラスタに適用します。
kubectl apply -f db-cluster.yaml
このマニフェストを適用すると、Kubernetes クラスタに、指定されたメモリ、CPU、ストレージ構成を持つ AlloyDB Omni データベース クラスタが含まれます。新しいデータベース クラスタとのテスト接続を確立するには、事前インストールされた psql を使用して接続するをご覧ください。
Kubernetes マニフェストとその適用方法の詳細については、リソースの管理をご覧ください。