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=journald
を docker 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