標準の Linux 環境に AlloyDB Omni をインストールする手順については、AlloyDB Omni をインストールするをご覧ください。
概要
AlloyDB Omni を Kubernetes クラスタにデプロイするには、Google が提供する Kubernetes API の拡張機能である AlloyDB Omni Kubernetes オペレーターをインストールします。
Kubernetes ベースの AlloyDB Omni データベース クラスタを構成して制御するには、他の Kubernetes ベースのデプロイと同様に、宣言型のマニフェスト ファイルを kubectl ユーティリティと組み合わせます。AlloyDB Omni CLI は使用しません。これは、Kubernetes クラスタではなく、個々の Linux マシンへのデプロイを目的としています。
ベースイメージ
バージョン 1.5.0 以降では、AlloyDB Omni Operator Kubernetes イメージは Red Hat の Universal Base Image(UBI)9 をベースに構築されています。この移行により、デプロイのセキュリティ、一貫性、コンプライアンスが強化されます。
SHA ダイジェスト イメージ参照
サプライ チェーン攻撃を防ぎ、OpenShift 認定要件を満たすため、AlloyDB Omni Operator は、すべてのコンテナ イメージ参照にバージョンタグではなく SHA-256 ダイジェストを使用します。
自動アップグレード: AlloyDB Omni Operator は、内部 ImageCatalog を使用してこれらのダイジェストを管理し、アップグレードの失敗時にデータプレーンのロールバックを確実に行います。
有効化: OpenShift 認定パッケージではデフォルトで有効になっていますが、OLM パッケージまたは Helm パッケージのユーザーは、OLM のサブスクリプション構成または Helm チャートの
enableDigestImageRefs値を使用して、ENABLE_DIGEST_IMAGE_REFS環境変数をtrueに設定することで、ダイジェスト参照を手動で有効にできます。
始める前に
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 は、オペレーターのパッケージ化とデプロイの標準の組み込みメソッドとして OLM を使用します。 |
アクセス権の確認
以下に対するアクセス権があることを確認します。
次のソフトウェアを実行している Kubernetes クラスタ。
- Kubernetes バージョン 1.21 以降。
- Helm を使用してインストールされた
cert-managerサービス。
ハードウェアとソフトウェアの要件を満たす
Kubernetes クラスタ内の各ノードには、次のものが必要です。
- 2 個以上の x86 CPU または AMD64 CPU。
- 8 GB 以上の RAM。
- Linux カーネル バージョン 4.18 以降。
- 対照群(cgroup)v2 が有効になっている。
AlloyDB Omni Operator をインストールする
本番環境に AlloyDB Omni をデプロイする場合は、本番環境で AlloyDB Omni を実行するをご覧ください。
AlloyDB Omni Operator は、Helm や Operator Lifecycle Manager(OLM)など、さまざまな方法でインストールできます。
Helm
AlloyDB Omni Operator をインストールする手順は次のとおりです。
- OCI レジストリから AlloyDB Omni Operator をインストールします。
helm install alloydbomni-operator oci://gcr.io/alloydb-omni/alloydbomni-operator \ --version 1.8.2 \ --create-namespace \ --namespace alloydb-omni-system \ $(helm install --help | grep -q -- '--rollback-on-failure' && echo '--rollback-on-failure' || echo '--atomic') \ --timeout 5m
インストールが正常に完了すると、次の出力が表示されます。
NAME: alloydbomni-operator LAST DEPLOYED: CURRENT_TIMESTAMP NAMESPACE: alloydb-omni-system STATUS: deployed REVISION: 1 TEST SUITE: None
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 ウェブ コンソールにログインします。
- オフラインまたは切断されたユーザーの場合は、
oc image mirrorなどの SHA ダイジェストを保持するツールを使用して、必要なイメージを非公開レジストリに手動でミラーリングする必要があります。公開gcr.ioリポジトリからプライベート レジストリにイメージ pull をリダイレクトするようにImageDigestMirrorSetを構成する必要があります。これにより、AlloyDB Omni Operator は、不変の SHA256 ダイジェストを使用して必要なイメージを pull できます。 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 サーバーの実行に必要なすべてのストレージ リソースとコンピューティング リソースが含まれています。
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: "18.3.0"
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-clusterENCODED_PASSWORD: デフォルトのpostgresユーザーロールのデータベース ログイン パスワード。base64 文字列としてエンコードされます。例:ChangeMe123の場合はQ2hhbmdlTWUxMjM=CPU_COUNT: このデータベース クラスタ内の各データベース インスタンスで使用できる CPU の数。MEMORY_SIZE: このデータベース クラスタのデータベース インスタンスあたりのメモリ量。CPU ごとに 8 GB に設定することをおすすめします。たとえば、このマニフェストの前半でcpuを2に設定した場合は、memoryを16Giに設定することをおすすめします。DISK_SIZE: データベース インスタンスあたりのディスクサイズ。例:10Gi
このマニフェストを適用すると、Kubernetes クラスタに、指定されたメモリ、CPU、ストレージ構成を持つ AlloyDB Omni データベース クラスタが含まれます。新しいデータベース クラスタとのテスト接続を確立するには、事前インストールされた psql を使用して接続するをご覧ください。
Kubernetes マニフェストとその適用方法の詳細については、リソースの管理をご覧ください。
データベース クラスタをスケーリングする
データベース クラスタのコンピューティング リソースをスケーリングするには、db-cluster.yaml マニフェストで cpu 値と memory 値を更新し、変更を適用します。スケーリング プロセスは、通常のスケーリング オペレーションとダウンタイムの少ないスケーリング オペレーションのどちらを選択するかによって異なります。
通常のスケーリング
スケーリング仕様を更新して、追加の構成なしでマニフェストを適用すると、データベース Pod がすぐに再起動します。これにより、新しいリソース割り当てが有効になるまでの間、プライマリ インスタンスとスタンバイ インスタンスで短いダウンタイムが発生します。
ダウンタイムの少ないスケーリング
少なくとも 1 つのスタンバイがある高可用性(HA)クラスタの場合、低ダウンタイム メンテナンス(LDTM)の準備と切り替えの戦略を使用して、スケーリング中のダウンタイムを最小限に抑えることができます。この戦略では、まずスタンバイにスケーリングの変更を適用し、迅速な切り替えを実行してから、元のプライマリ インスタンスに変更を適用します。LDTM 戦略を使用してスケールアップまたはスケールダウンできます。
ダウンタイムの少ないスケーリングを有効にしてモニタリングする手順は次のとおりです。
ダウンタイムの短いスケーリングを有効にします。
enableLDTMアノテーションをデータベース クラスタに追加します。kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME dbcluster.dbadmin.goog/enableLDTM=true
DB_CLUSTER_NAMEは、実際のデータベース クラスタの名前に置き換えます。更新されたスケーリング仕様を適用します。マニフェストの
primarySpec.resourcesの下にあるcpu値とmemory値を更新し、変更を適用します。kubectl apply -f db-cluster.yaml
スケーリング プロセスをモニタリングします。
LDTMScalingInProgressステータス条件を確認して、オペレーションをモニタリングします。kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o yaml | yq '.status.conditions[] | select(.type == "LDTMScalingInProgress")'
DB_CLUSTER_NAMEは、実際のデータベース クラスタの名前に置き換えます。プロセスの進行中は、ステータスが
trueになります。スケーリングが完了すると、条件のステータスはfalseに変わります。
制限事項
- LDTM スケーリングは、スタンバイが 1 つ以上ある HA クラスタでのみサポートされます。
- 2 つの LDTM オペレーションを同時に実行することはできません。たとえば、LDTM を使用してデータベース クラスタをスケーリングするか、マイナー バージョンのアップグレードを実行することはできますが、両方を同時に行うことはできません。
- LDTM スケーリング オペレーションが失敗した場合は、手動でロールバックする必要があります。
次のステップ
- プランのストレージと PVC のサイズ。
- AlloyDB Omni を実行して接続します。
- AlloyDB Omni を管理する。
- Kubernetes で高可用性を管理する。
- TDE 対応クラスタを作成する。