デフォルトでは、一部の Docker エンジンは UNIX ソケットを listen するように構成されます。しかし、TCP/IP ポートを使用して listen するようにエンジンを再構成できます。そうすると、Docker CLI または Docker API (docker-py) を使用して、ネットワーク経由で Docker コマンドを送信し、リモートの Db2® Warehouse ノード上で実行することができます。
コマンドのセキュアなリモート呼び出しをサポートするために、Db2 Warehouse には setup_docker_remote.sh スクリプトが用意されています。このスクリプトは、セキュアなリモート通信のために必要な CA 証明書およびサーバーとクライアントの TLS 証明書をセットアップします。
また、このスクリプトは、簡単に TLS で Docker コマンドをリモートから呼び出せる /usr/bin/docker_remote コマンドをインストールします。
手順
-
コンテナーにある Db2 Warehouse Orchestrator ツールを使用する場合は、以下のサブステップを実行します。
- ヘッド・ノード・ホストで、以下の該当するコマンドを発行して、コンテナーに含まれる Db2 Warehouse Orchestrator スクリプトをコピーします。
- IBM® POWER® LE ハードウェア用のコンテナーの場合:
docker run --rm --entrypoint cat store/ibmcorp/db2wh_ee:v3.9.0-db2wh-ppcle /tmp/db2wh_host_tools.zip > path_on_host /db2wh_host_tools.zip
- IBM z Systems® ハードウェアのコンテナーの場合:
docker run --rm --entrypoint cat store/ibmcorp/db2wh_ee:v3.9.0-db2wh-s390x /tmp/db2wh_host_tools.zip > path_on_host /db2wh_host_tools.zip
- x86 ハードウェアのコンテナーの場合:
docker run --rm --entrypoint cat store/ibmcorp/db2wh_ee:v3.9.0-db2wh-linux /tmp/db2wh_host_tools.zip > path_on_host /db2wh_host_tools.zip
- ヘッド・ノード・ホストで、db2wh_host_tools.zip ファイルを使用したい場所に解凍します。
-
IBM GitHub リポジトリーにある Db2 Warehouse Orchestrator ツールを使用する場合は、各ノード・ホストで以下のコマンドを発行します。
- 次のコマンドを発行します。
wget https://github.com/IBM/db2warehouse-tools/archive/master.zip -O db2warehouse-tools-master.zip
- 次のコマンドを発行します。
unzip db2warehouse-tools-master.zip
- 次のコマンドを発行します。
cd db2warehouse-tools-master
-
setup_docker_remote.sh スクリプトを /mnt/clusterfs フォルダーに移動します。
-
次のコマンドを発行して、スクリプトを実行可能にします。
chmod +x path_to_script/setup_docker_remote.sh
-
Docker コマンドをリモート実行するすべてのノードで、以下のようにスクリプトを実行します。
path_to_script/setup_docker_remote.sh --cert-path "path" [--host hostname] [-h|--help]
ここで、
- --cert-path "path" には、クライアントの TLS 証明書を保存する共有ファイル・システム・パス (慣例的に /mnt/clusterfs) を指定します。共有ファイル・システム・パスを指定すると、Db2 Warehouse クラスター内のすべてのノードから証明書にアクセスできます。
- --host
hostname は、Docker エンジンで認証されるようにするためのホスト名または IP アドレスを指定します。デフォルトでは、setup_docker_remote.sh スクリプトは TLS 証明書を生成し、その証明書を使用した localhost と 127.0.0.1 からの認証、および、ホストの完全修飾ドメイン名、短縮名、または IP アドレスからの認証を可能にします。しかし、内部 (ファブリック・ネットワーク) IP アドレスなどの追加のホスト名や IP アドレスを 1 つ以上指定して、TLS で Docker エンジンから認証されるようにすることができます。複数のホスト名または IP アドレスがある場合は、コンマ区切りリストとして指定します。
-
各ノードで、ソケットと TLS の設定 (hosts、tlsverify、tlscacert、tlscert、tlskey) が Docker エンジンのオプション・ファイル (/etc/docker/daemon.json) 内で定義されていることを確認します。
-
ノードで Docker systemd ユニット構成ファイル (/etc/systemd/system/docker.service.d/docker.conf) を使用していた場合は、そのすべての設定をユニット・ファイルから /etc/docker/daemon.json ファイルに移行し、ユニット・ファイルを削除します (まだそうしていない場合)。
-
各ノードで、以下のコマンドを発行して、Docker エンジンを再始動します。
systemctl restart docker.service
次のタスク
/usr/bin/docker_remote コマンドを使用して Docker コマンドをリモートから呼び出せるようになりました。IBM Db2 Warehouse での Docker コマンドのリモート呼び出しを参照してください。