標準の 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 オペレーターは、すべてのコンテナ イメージ参照にバージョンタグではなく 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 は、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 をインストールする手順は次のとおりです。
- OCI レジストリから AlloyDB Omni Operator をインストールします。
helm install alloydbomni-operator oci://gcr.io/alloydb-omni/alloydbomni-operator \ --version 1.7.0 \ --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
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 オペレーターは、不変の 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 サーバーの実行に必要なすべてのストレージ リソースとコンピューティング リソースが含まれています。
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.7.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 マニフェストとその適用方法の詳細については、リソースの管理をご覧ください。