第31章 corosync 以外のノードのクラスターへの統合: pacemaker_remote サービス
pacemaker_remote サービスを使用すると、corosync を実行していないノードをクラスターに統合し、そのリソースが実際のクラスターノードであるかのように、クラスターがリソースを管理できます。
pacemaker_remote サービスが提供する機能には以下が含まれます。
-
pacemaker_remoteサービスは、Red Hat サポート制限である 32 ノードを超えた拡張を可能にします。 -
pacemaker_remoteサービスを使用すると、仮想環境をクラスターリソースとして管理でき、さらに仮想環境内の個別のサービスをクラスターリソースとして管理できます。
pacemaker_remote サービスは、以下の用語を使用して記述されます。
-
クラスターノード - 高可用性サービスを実行しているノード (
pacemakerおよびcorosync)。 -
リモートノード -
pacemaker_remoteを実行して、corosyncクラスターメンバーシップを必要としないクラスターにリモートで統合するノード。リモートノードは、ocf:pacemaker:remoteリソースエージェントを使用するクラスターリソースとして設定されます。 -
ゲストノード -
pacemaker_remoteサービスを実行する仮想ゲストノード。仮想ゲストリソースはクラスターにより管理されます。クラスターにより起動し、リモートノードとしてクラスターに統合されます。 -
pacemaker_remote - Pacemaker クラスター環境のリモートノードおよび KVM ゲストノードでリモートアプリケーション管理を実行できるサービスデーモン。このサービスは、corosync を実行していないノードでリソースをリモートで管理できる Pacemaker のローカル実行プログラムデーモン (
pacemaker-execd) の拡張バージョンです。
pacemaker_remote サービスを実行している Pacemaker クラスターには次のような特徴があります。
-
リモートノードおよびゲストノードは、
pacemaker_remoteサービスを実行します (仮想マシン側で必要な設定はほとんどありません)。 -
クラスターノードで実行しているクラスタースタック (
pacemakerおよびcorosync) はリモートノードでpacemaker_remoteサービスに接続するため、クラスターに統合できます。 -
クラスターノードで実行しているクラスタースタック (
pacemakerおよびcorosync) はゲストノードを開始し、ゲストノードでpacemaker_remoteサービスに即座に接続するため、クラスターに統合できます。
クラスターノードと、クラスターノードが管理するリモートおよびゲストノードの主な違いは、リモートおよびゲストノードはクラスタースタックを実行しないことです。そのため、リモートおよびゲストノードには以下の制限があります。
- クォーラムでは実行されない
- フェンシングデバイスの動作を実行しない
- クラスターの指定コントローラー (DC) として機能できない
-
pcsコマンドは一部しか実行できない
その一方で、リモートノードおよびゲストノードは、クラスタースタックに関連するスケーラビリティーの制限に拘束されません。
このような制限事項以外に、リモートノードとゲストノードは、リソース管理に関してクラスターノードと同様に動作し、リモートノードとゲストノード自体をフェンスすることができます。クラスターは、各リモートノードおよびゲストノードのリソースを完全に管理し、監視できます。このようなノードに制約を作成したり、ノードをスタンバイ状態にできます。または、pcs コマンドを使用して、クラスターノードでその他の動作を実行することもできます。リモートノードおよびゲストノードは、クラスターノードと同様にクラスターステータスの出力に表示されます。
31.1. pacemaker_remote ノードのホストおよびゲストの認証 リンクのコピーリンクがクリップボードにコピーされました!
Pacemaker は、Pacemaker ノードと pacemaker_remote ノード間の接続を保護する 2 つの方法をサポートしています。
- TCP 経由の事前共有鍵 (PSK) 暗号化と認証を備えた Transport Layer Security (TLS)。
- SSL 証明書を使用する TLS (RHEL 9.6 以降)この方法では、既存の証明書を使用して接続を保護できます。
31.1.1. PSK 暗号化を使用した TLS リンクのコピーリンクがクリップボードにコピーされました!
クラスターノードの add-guest コマンドでゲストノードを設定する場合や、クラスター ノードと pacemaker_remote コマンドを使用して リモート ノードを設定する場合、事前共有キー(PSK)暗号化と TCP での認証がデフォルトで 3121 を用いて TLS を使用して、クラスターノードと pacemaker_remote の間の接続が保護されます。そのため、クラスターノードと、pacemaker_remote を実行しているノードは、同じ秘密鍵を共有する必要があります。デフォルトでは、クラスターノードとリモートノードの両方でこのキーを /etc/pacemaker/authkey に配置する必要があります。
pcs cluster node add-guest command または pcs cluster node add-remote コマンドの初回実行時には、authkey が作成され、クラスター内のすべての既存ノードにインストールされます。後で任意のタイプの新しいノードを作成すると、既存の authkey が新しいノードにコピーされます。
31.1.2. SSL/TLS 証明書の設定 リンクのコピーリンクがクリップボードにコピーされました!
X.509 (SSL/TLS) 証明書を使用して Pacemaker リモート接続を暗号化できます。この方法を使用すると、Pacemaker リモート接続に秘密共有鍵ではなく既存のホスト証明書を再利用できます。
SSL/TLS 証明書を設定するには、pcs cluster node add-guest コマンドまたは pcs cluster node add-remote コマンドを使用してリモート接続を作成します。その後、証明書を使用するようにリモート接続を変換できます。
手順
以下の手順に従って、Pacemaker ノードとリモートノード間の接続のセキュリティーを保護するために SSL/TLS 証明書を設定します。
pcs cluster node add-guestコマンドまたはpcs cluster node add-remote commandコマンドを使用して、リモート接続を作成します。これにより、ゲストノードまたはリモートノードのauthkeyが設定されます。次のコマンド例は、リモートノードを作成し、そのノードのauthkeyを設定します。pcs cluster node add-remote remote1
[root@clusternode1 ~]# pcs cluster node add-remote remote1Copy to Clipboard Copied! Toggle word wrap Toggle overflow リモートノードの完全な設定手順については、「Pacemaker リモートノードの設定」を参照してください。
すべてのクラスターノードと Pacemaker リモートノードの
etc/sysconfig/pacemakerファイルで次の変数を更新して、作成した接続を、SSL/TLS 証明書を使用するように変換します。PCMK_ca_file- クライアントまたはサーバーの証明書を検証するために使用される、信頼済み証明書認証局がふくまれるファイルの場所。このファイルは PEM 形式でなければならず、haclusterユーザーまたはhaclientグループのいずれかに読み取り権限を許可する必要があります。PCMK_cert_file- 接続のサーバー側の署名付き証明書が含まれるファイルの場所。このファイルは PEM 形式でなければならず、haclusterユーザーまたはhaclientグループのいずれかに読み取り権限を許可する必要があります。PCMK_crl_file(オプション) - PEM 形式の証明書失効リストファイルの場所。PCMK_key_file- 一致するPCMK_cert_fileの秘密鍵が含まれるファイルの場所 (PEM 形式)。このファイルは PEM 形式でなければならず、haclusterユーザーまたはhaclientグループのいずれかに読み取り権限を許可する必要があります。-
必要に応じて、クラスターとリモートノードから
/etc/pacemaker/authkeyファイルを削除します。証明書が設定されている場合、Pacemaker は証明書を使用します。しかし、ノード上で証明書を設定していない場合、authkeyファイルを削除すると、Pacemaker は PSK 暗号化を使用しなくなります。