Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

9.5.4. Pacemaker バンドル設定の例

以下の例では、httpd-bundle というバンドル ID で Pacemaker bundle を作成します。これには、httpd というリソース ID を持つ ocf:heartbeat:apache が含まれます。
この手順には、以下の前提設定が必要です。
  • Docker が、クラスターの各ノードでインストールされ有効化されている。
  • pcmktest:http という既存の Docker イメージが存在する。
  • コンテナーイメージに、Pacemaker Remote デーモンが含まれている。
  • コンテナーイメージに、設定済みの Apache Web サーバーが含まれている。
  • クラスターの各ノードに、/var/local/containers/httpd-bundle-0/var/local/containers/httpd-bundle-1/var/local/containers/httpd-bundle-2 というディレクトリーがあり、Web サーバーの root に index.html ファイルが含まれている。稼働中は、単一の共有ドキュメント root が対象となるが、この例では、この設定により、各ホスト上の index.html ファイルを別のものにすることが可能。そのため、Web サーバーに接続して、サービスされる index.html ファイルを確認することが可能。
この手順により、Pacemaker バンドルに以下のパラメーターが設定されます。
  • バンドル ID は httpd-bundle です。
  • 以前設定した Docker コンテナーイメージは pcmktest:http です。
  • この例は、3 コンテナーインスタンスを起動します。
  • この例では、コマンドラインオプション --log-driver=journalddocker run コマンドに渡します。このパラメーターは必要ではありませんが、その他のオプションを docker コマンドに渡す方法を示すために追加しています。--log-driver=journald の値は、コンテナー内のシステムログが基礎となるホストの systemd ジャーナルにログインされることを意味します。
  • Pacemaker は、3 つの連続した暗黙的な ocf:heartbeat:IPaddr2 リソースを作成します。これは、各コンテナーに対して 1 つ作成され、IP アドレス 192.168.122.131 で始まります。
  • IP アドレスは、ホストインターフェイス eth0 で作成されます。
  • IP アドレスは、CIDR ネットマスクが 24 で作成されます。
  • この例では、http-port というポートマップ ID を作成します。コンテナーに割り当てられている IP アドレスのポート 80 に対する接続がコンテナーネットワークに転送されます。
  • この例では、httpd-root というストレージマップ ID を作成します。このストレージマッピングについて以下で説明します。
    • source-dir-root の値は /var/local/containers です。これは各コンテナーインスタンスに対して、ホスト上の異なるサブディレクトリーを使用し、コンテナーにマッピングされるホストのファイルシステム上のパスの開始を指定します。
    • target-dir の値は /var/www/html で、ホストストレージがマッピングされるコンテナー内のパス名を指定します。
    • このファイルシステム rw マウントオプションは、ストレージのマッピングの際に使用されます。
    • この例のコンテナーはリソースを含むため、Pacemaker は自動的に、コンテナーに source-dir=/etc/pacemaker/authkey と同等のものをマッピングします。このコンテナーでは、ストレージマッピングにそのパスを指定する必要はありません。
この例では、既存のクラスター設定が、temp-cib.xml という名前の一時ファイルに配置され、temp-cib.xml.deltasrc にコピーされます。クラスター設定に対する設定のすべては、tmp-cib.xml ファイルに対して行われます。udpates が完了すると、この手順では pcs cluster cib-push コマンドの diff-against を使用して、設定ファイルの更新のみがアクティブな設定ファイルにプッシュされるようにします。
# pcs cluster cib tmp-cib.xml
# cp tmp-cib.xml tmp-cib.xml.deltasrc
# pcs -f tmp.cib.xml resource bundle create httpd-bundle \
container docker image=pcmktest:http replicas=3 \
options=--log-driver=journald \
network ip-range-start=192.168.122.131 host-interface=eth0 \
host-netmask=24 port-map id=httpd-port port=80 \
storage-map id=httpd-root source-dir-root=/var/local/containers \
target-dir=/var/www/html options=rw \
# pcs -f tmp-cib.xml resource create httpd ocf:heartbeat:apache \
statusurl=http://localhost/server-status bundle httpd-bundle
# pcs cluster cib-push tmp-cib.xml diff-against=tmp-cib.xml.deltasrc