始める前に
すべてのノードとクラスタ コンポーネントの詳細を含む Deployment の仕様ファイル deployment_spec.yaml があることを確認します。
オーケストレーターをアップグレードする
オーケストレーターはデータベース クラスタを管理します。他のクラスタ コンポーネントをアップグレードする前に、コントロール ノードのオーケストレーターをアップグレードする必要があります。
Ansible
Ansible プレイブックを使用してインフラストラクチャを管理する場合は、次の手順を完了します。
次のコマンドを実行して、コントロール ノードにインストールされている
google.alloydbomni_orchestratorコレクションのバージョンを確認します。ansible-galaxy collection list | grep alloydbomni_orchestrator既存のバージョンを上書きするには、コレクション tar ファイルの最新の安定版リリースをダウンロードして、強制インストールを実行します。
ansible-galaxy collection install --force google-alloydbomni_orchestrator-NEW_VERSION.tar.gzNEW_VERSIONは、新しいコレクションのバージョンに置き換えます。
alloydbctl
alloydbctl コマンドライン ツールを使用する場合は、次の手順を完了します。
コントロール ノードにインストールされている RPM オーケストレーター
alloydbomni_orchestratorのパッケージ バージョンを確認するには、次のコマンドを実行します。rpm -q alloydbomni_orchestratorパッケージ マネージャーを使用して、コントロール ノードのソフトウェア パッケージをアップグレードします。
sudo dnf upgrade alloydbomni_orchestrator
Ansible を使用してクラスタ コンポーネントを更新する
提供されている Ansible ロールを使用して更新することをおすすめします。
オーケストレーター コレクションの
updateロールを参照するupdate.yamlという名前のハンドブックを作成します。update_actionパラメータの値をupdate_rpmに設定する必要があります。デフォルトでは、
updateロールはコントロール プレーンとデータプレーンの両方を更新します。コントロール プレーンまたはデータプレーンのコンポーネントのみを更新するには、他のプレーンのパラメータをfalseに設定します。--- - hosts: all become: true vars: update_action: "update_rpm" ansible_user: SSH_USER ansible_ssh_private_key_file: PRIVATE_KEY_PATH update_control_plane: true # Optional argument if you want to only update data plane components update_data_plane: true # Optional argument if you want to only update control plane components roles: - role: google.alloydbomni_orchestrator.update次のように置き換えます。
SSH_USER: クラスタノードにアクセスできる SSH ユーザー名。PRIVATE_KEY_PATH: SSH 認証鍵ファイルのパス。update_action: 更新のスコープ。この値をupdate_rpmに設定します。update_control_plane: 省略可。データプレーン コンポーネントのみを更新するには、falseに設定します。デフォルトはtrueです。update_data_plane: 省略可。コントロール プレーン コンポーネントのみを更新するには、falseに設定します。デフォルトはtrueです。
指定されたすべてのノードで更新を実行するには、インベントリ ファイルを使用してハンドブックを実行します。
ansible-playbook -i DEPLOYMENT_SPEC update.yamlDEPLOYMENT_SPECは、デプロイ仕様ファイルのパスに置き換えます。Deployment の仕様ファイルで、クラスタ内の各コンポーネントのインストール済みバージョンが定義されていることを確認します。更新ロールは、インベントリ ファイルでバージョンを構成する方法に基づいてコンポーネントを更新します。
- コンポーネントのバージョンがインストールされているバージョンと一致する場合、更新ロールはそのコンポーネントを変更しません。
- コンポーネントのバージョンを特定のターゲット バージョンに変更すると、コンポーネントはそのバージョンに更新されます。
- コンポーネントのバージョン フィールドを空のままにすると、構成されたリポジトリで使用可能な最新バージョンにコンポーネントが更新されます。
クラスタ コンポーネントを手動で更新する
Ansible オーケストレーターを使用していない場合や、更新プロセスをきめ細かく制御する場合は、クラスタ内の各ノードの RPM コンポーネントを手動で更新できます。ソフトウェア アップデートは、スケジュールされたメンテナンスの時間枠内に行うことをおすすめします。
手動更新プロセスでは、次の 2 つのプレーンを更新します。
コントロール プレーン(RPM オーケストレーター コンポーネント): コントロール プレーンは、データベース クラスタを制御および管理するレイヤです。RPM デプロイでは、コントロール プレーンに
cluster_manager、node_manager、etcdが含まれます。データプレーン(データベース クラスタ): データプレーンには、AlloyDB Omni データベース エンジン自体(
monitor)や、pgBackRest、PgBouncer、keepalived、HAProxyなどのサービスを含むデータベース クラスタ コンポーネントが含まれています。データプレーンをアップグレードすると、データベース バージョンの更新、セキュリティ パッチ、パフォーマンスの改善がデータベース クラスタに直接適用されます。
リファレンス アーキテクチャに関係なく、コントロール プレーンを更新する手順は同じです。データ プレーンを更新する前に、コントロール プレーン コンポーネントを更新する必要があります。データプレーンを更新する手順は、データベースのデプロイ アーキテクチャによって異なります。
サービスまたはパッケージを更新する手順は次のとおりです。
サービスを停止します。
sudo systemctl stop SERVICE次のいずれかのコマンドを使用してパッケージをアップグレードします。
利用可能な最新バージョンに更新するには:
sudo dnf upgrade PACKAGE特定のバージョンに更新するには:
sudo dnf upgrade PACKAGE-VERSION
サービスを起動します。
sudo systemctl start SERVICE
次のように置き換えます。
SERVICE: 停止して開始するサービスの名前(例:pgbouncer、keepalived)。PACKAGE: 更新するパッケージの名前(例:pgbouncer、alloydbomni18)。VERSION: インストールするターゲット パッケージのバージョン(18.3.0や18.3.0-2.rhel9など)。
コントロール プレーンを手動で更新する
コントロール プレーンを更新するには、指定されたノードで次の操作を行います。
すべてのクラスタ マネージャー ノードでクラスタ マネージャーを停止するには、次のコマンドを実行します。
sudo systemctl stop alloydbomni_cluster_managerすべての DCS ノードで
etcdを更新するには、次のコマンドを順番に実行します。sudo systemctl stop etcdsudo dnf upgrade etcdsudo systemctl start etcdすべてのノードでノード マネージャーを更新するには、次のコマンドを順番に実行します。
sudo systemctl stop alloydbomni_node_managersudo dnf upgrade alloydbomni_node_managersudo systemctl start alloydbomni_node_managerコントロール プレーン コンポーネントを更新したら、すべてのクラスタ マネージャー ノードでクラスタ マネージャーを更新し、必要に応じて再起動できます。
sudo dnf upgrade alloydbomni_cluster_managersudo systemctl start alloydbomni_cluster_manager
データプレーンを手動で更新する
データプレーンを更新するには、デプロイ アーキテクチャに指定された順序でデータベースとヘルパー サービスを更新します。各サービスについて、サービスの停止、パッケージのアップグレード、サービスの起動という厳密な順序で操作する必要があります。
リファレンス アーキテクチャに応じて、デプロイの手順に沿って操作します。
alloydbctl getコマンドを使用してクラスタのステータスを取得し、出力形式を YAML に設定します。alloydbctl get -d DEPLOYMENT_SPEC -t RESOURCE_TYPE -n CLUSTER_NAME -o yaml次のように置き換えます。
RESOURCE_TYPE: 検査するリソースタイプ(例:DBCluster)。CLUSTER_NAME: データベース クラスタの名前。DEPLOYMENT_SPEC: Deployment 仕様ファイルのパス。
YAML 出力で、
statusセクションのinstanceListをメモします。ロールが
Primaryに設定されているノードを見つけます。他のすべてのデータベース ノードはスタンバイ ノードです。最初にスタンバイ ノードで実行されているすべてのデータプレーン コンポーネントを更新し、次にプライマリ ノードでそれらのコンポーネントを更新します。各ノードのデータプレーン コンポーネントを更新する手順は次のとおりです。
AlloyDB Omni を更新するには、次のコマンドを順番に実行します。
sudo systemctl stop alloydbomni18sudo dnf upgrade alloydbomni18sudo systemctl start alloydbomni18モニターを更新するには、次のコマンドを順番に実行します。
sudo systemctl stop alloydbomni_monitorsudo dnf upgrade alloydbomni_monitorsudo systemctl start alloydbomni_monitorpgBackRest を更新するには、次のコマンドを順番に実行します。
sudo dnf upgrade pgbackrestPgBouncer を更新するには、次のコマンドを順番に実行します。
sudo systemctl stop pgbouncersudo dnf upgrade pgbouncersudo systemctl start pgbouncerkeepalived を更新するには、次のコマンドを順番に実行します。
sudo systemctl stop keepalivedsudo dnf upgrade keepalivedsudo systemctl start keepalivedHAProxy を更新するには、次のコマンドを順番に実行します。
sudo systemctl stop haproxysudo dnf upgrade haproxysudo systemctl start haproxy