RPM オーケストレーター クラスタ コンポーネントを更新する

ドキュメントのバージョンを選択してください。

このページでは、Red Hat Enterprise Linux(RHEL)環境で AlloyDB Omni データベース クラスタのソフトウェア パッケージ、リソース構成、RPM オーケストレーターを更新する方法について説明します。

始める前に

すべてのノードとクラスタ コンポーネントの詳細を含む Deployment の仕様ファイル deployment_spec.yaml があることを確認します。

オーケストレーターをアップグレードする

オーケストレーターはデータベース クラスタを管理します。他のクラスタ コンポーネントをアップグレードする前に、コントロール ノードのオーケストレーターをアップグレードする必要があります。

Ansible

Ansible プレイブックを使用してインフラストラクチャを管理する場合は、次の手順を完了します。

  1. 次のコマンドを実行して、コントロール ノードにインストールされている google.alloydbomni_orchestrator コレクションのバージョンを確認します。

    ansible-galaxy collection list | grep alloydbomni_orchestrator
  2. 既存のバージョンを上書きするには、コレクション tar ファイルの最新の安定版リリースをダウンロードして、強制インストールを実行します。

    ansible-galaxy collection install --force google-alloydbomni_orchestrator-NEW_VERSION.tar.gz

    NEW_VERSION は、新しいコレクションのバージョンに置き換えます。

alloydbctl

alloydbctl コマンドライン ツールを使用する場合は、次の手順を完了します。

  1. コントロール ノードにインストールされている RPM オーケストレーター alloydbomni_orchestrator のパッケージ バージョンを確認するには、次のコマンドを実行します。

    rpm -q alloydbomni_orchestrator
  2. パッケージ マネージャーを使用して、コントロール ノードのソフトウェア パッケージをアップグレードします。

    sudo dnf upgrade alloydbomni_orchestrator

Ansible を使用してクラスタ コンポーネントを更新する

提供されている Ansible ロールを使用して更新することをおすすめします。

  1. オーケストレーター コレクションの 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 です。
  2. 指定されたすべてのノードで更新を実行するには、インベントリ ファイルを使用してハンドブックを実行します。

    ansible-playbook -i DEPLOYMENT_SPEC update.yaml

    DEPLOYMENT_SPEC は、デプロイ仕様ファイルのパスに置き換えます。

    Deployment の仕様ファイルで、クラスタ内の各コンポーネントのインストール済みバージョンが定義されていることを確認します。更新ロールは、インベントリ ファイルでバージョンを構成する方法に基づいてコンポーネントを更新します。

    • コンポーネントのバージョンがインストールされているバージョンと一致する場合、更新ロールはそのコンポーネントを変更しません。
    • コンポーネントのバージョンを特定のターゲット バージョンに変更すると、コンポーネントはそのバージョンに更新されます。
    • コンポーネントのバージョン フィールドを空のままにすると、構成されたリポジトリで使用可能な最新バージョンにコンポーネントが更新されます。

クラスタ コンポーネントを手動で更新する

Ansible オーケストレーターを使用していない場合や、更新プロセスをきめ細かく制御する場合は、クラスタ内の各ノードの RPM コンポーネントを手動で更新できます。ソフトウェア アップデートは、スケジュールされたメンテナンスの時間枠内に行うことをおすすめします。

手動更新プロセスでは、次の 2 つのプレーンを更新します。

  • コントロール プレーン(RPM オーケストレーター コンポーネント): コントロール プレーンは、データベース クラスタを制御および管理するレイヤです。RPM デプロイでは、コントロール プレーンに cluster_manager、node_manager、etcd が含まれます。

  • データプレーン(データベース クラスタ): データプレーンには、AlloyDB Omni データベース エンジン自体(monitor)や、pgBackRest、PgBouncer、keepalived、HAProxy などのサービスを含むデータベース クラスタ コンポーネントが含まれています。データプレーンをアップグレードすると、データベース バージョンの更新、セキュリティ パッチ、パフォーマンスの改善がデータベース クラスタに直接適用されます。

リファレンス アーキテクチャに関係なく、コントロール プレーンを更新する手順は同じです。データ プレーンを更新する前に、コントロール プレーン コンポーネントを更新する必要があります。データプレーンを更新する手順は、データベースのデプロイ アーキテクチャによって異なります。

サービスまたはパッケージを更新する手順は次のとおりです。

  1. サービスを停止します。

    sudo systemctl stop SERVICE
  2. 次のいずれかのコマンドを使用してパッケージをアップグレードします。

    • 利用可能な最新バージョンに更新するには:

      sudo dnf upgrade PACKAGE
    • 特定のバージョンに更新するには:

      sudo dnf upgrade PACKAGE-VERSION
  3. サービスを起動します。

    sudo systemctl start SERVICE

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

  • SERVICE: 停止して開始するサービスの名前(例: pgbouncer、keepalived)。
  • PACKAGE: 更新するパッケージの名前(例: pgbouncer、alloydbomni18)。
  • VERSION: インストールするターゲット パッケージのバージョン(18.3.0 や 18.3.0-2.rhel9 など)。

コントロール プレーンを手動で更新する

コントロール プレーンを更新するには、指定されたノードで次の操作を行います。

  1. すべてのクラスタ マネージャー ノードでクラスタ マネージャーを停止するには、次のコマンドを実行します。

    sudo systemctl stop alloydbomni_cluster_manager
  2. すべての DCS ノードで etcd を更新するには、次のコマンドを順番に実行します。

    sudo systemctl stop etcd
    sudo dnf upgrade etcd
    sudo systemctl start etcd
  3. すべてのノードでノード マネージャーを更新するには、次のコマンドを順番に実行します。

    sudo systemctl stop alloydbomni_node_manager
    sudo dnf upgrade alloydbomni_node_manager
    sudo systemctl start alloydbomni_node_manager
  4. コントロール プレーン コンポーネントを更新したら、すべてのクラスタ マネージャー ノードでクラスタ マネージャーを更新し、必要に応じて再起動できます。

    sudo dnf upgrade alloydbomni_cluster_manager
    sudo systemctl start alloydbomni_cluster_manager

データプレーンを手動で更新する

データプレーンを更新するには、デプロイ アーキテクチャに指定された順序でデータベースとヘルパー サービスを更新します。各サービスについて、サービスの停止、パッケージのアップグレード、サービスの起動という厳密な順序で操作する必要があります。

リファレンス アーキテクチャに応じて、デプロイの手順に沿って操作します。

  1. alloydbctl get コマンドを使用してクラスタのステータスを取得し、出力形式を YAML に設定します。

    alloydbctl get -d DEPLOYMENT_SPEC -t RESOURCE_TYPE -n CLUSTER_NAME -o yaml

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

    • RESOURCE_TYPE: 検査するリソースタイプ(例: DBCluster)。
    • CLUSTER_NAME: データベース クラスタの名前。
    • DEPLOYMENT_SPEC: Deployment 仕様ファイルのパス。
  2. YAML 出力で、status セクションの instanceList をメモします。

    ロールが Primary に設定されているノードを見つけます。他のすべてのデータベース ノードはスタンバイ ノードです。

  3. 最初にスタンバイ ノードで実行されているすべてのデータプレーン コンポーネントを更新し、次にプライマリ ノードでそれらのコンポーネントを更新します。各ノードのデータプレーン コンポーネントを更新する手順は次のとおりです。

    1. AlloyDB Omni を更新するには、次のコマンドを順番に実行します。

      sudo systemctl stop alloydbomni18
      sudo dnf upgrade alloydbomni18
      sudo systemctl start alloydbomni18
    2. モニターを更新するには、次のコマンドを順番に実行します。

      sudo systemctl stop alloydbomni_monitor
      sudo dnf upgrade alloydbomni_monitor
      sudo systemctl start alloydbomni_monitor
    3. pgBackRest を更新するには、次のコマンドを順番に実行します。

      sudo dnf upgrade pgbackrest
    4. PgBouncer を更新するには、次のコマンドを順番に実行します。

      sudo systemctl stop pgbouncer
      sudo dnf upgrade pgbouncer
      sudo systemctl start pgbouncer
    5. keepalived を更新するには、次のコマンドを順番に実行します。

      sudo systemctl stop keepalived
      sudo dnf upgrade keepalived
      sudo systemctl start keepalived
    6. HAProxy を更新するには、次のコマンドを順番に実行します。

      sudo systemctl stop haproxy
      sudo dnf upgrade haproxy
      sudo systemctl start haproxy