3.3. ゲートウェイを作成し、別のマシンでそれを適用する
1 台のマシンからクラスターにアクセスできるが、別のマシンからサービスネットワークへのゲートウェイを作成したい場合は、この手順で説明するように、最初のマシンでゲートウェイ定義バンドルを作成し、後でその定義バンドルを 2 台目のマシンに適用することができます。たとえば、ローカルのデータベースサービスをサービスネットワークに公開しても、データベースサーバーからクラスターにアクセスしたくない場合は、この手順を使用して定義バンドルを作成し、データベースサーバーに適用することができます。
手順
- 1 台目のマシンからクラスターにログインし、サイトの namespace に変更します。
サービスネットワーク上で通信可能なサービスを作成します。
$ skupper service create <name> <port>
ここでは、以下のようになります。
-
<name>
- 作成するサービスの名前。 -
<port>
- サービスが使用するポート。
以下に例を示します。
$ skupper service create database 5432
-
公開するサービスを表す YAML ファイルを作成します。以下に例を示します。
name: database 1 bindings: - name: database 2 host: localhost 3 service: address: database:5432 4 protocol: tcp 5 ports: - 5432 6 target_ports: - 5432 7 qdr-listeners: - name: amqp host: localhost port: 5672
-
ゲートウェイの名前を使用して、YAML ファイルを保存します (例:
gateway.yaml
)。 サービスネットワーク上で公開するサービスをホストするマシンに適用できるバンドルを生成します。
$ skupper gateway generate-bundle <config-filename> <destination-directory>
ここでは、以下のようになります。
- <config-filename> - 前のステップで生成した YAML ファイルの名前 (接尾辞を含む)。
-
<destination-directory> - 結果のゲートウェイバンドルを保存する場所 (例:
~/gateways
)。
以下に例を示します。
$ skupper gateway generate-bundle database.yaml ./
このバンドルには、サービスネットワークへのアクセスを許可するゲートウェイ定義の YAML と証明書が含まれています。
-
ゲートウェイ定義ファイル (
mylaptop-jdoe.tar.gz
など) を、サービスネットワーク上で公開するサービスをホストするマシンにコピーします。 公開したいサービスをホストしているマシンから、以下を実行します。
$ mkdir gateway $ tar -xvf <gateway-definition-file> --directory gateway $ cd gateway $ sh ./launch.py
注記./launch.py -t podman
または./launch.py -t docker
を使用して、コンテナーで Skupper ルーターを実行します。ゲートウェイバンドルを実行すると、ゲートウェイ定義 YAML と証明書を使用して、サービスネットワーク上のサービスにアクセスして公開します。
ゲートウェイサービスのステータスを確認します。
サービス タイプのゲートウェイを確認するには、以下を実行します。
$ systemctl --user status <gateway-definition-name>
podman タイプのゲートウェイを確認するには、以下を実行します。
$ podman inspect
docker タイプのゲートウェイを確認するには、以下を実行します。
$ docker inspect
注記後で
./remove.py
を使用してゲートウェイを削除できます。クラスターにアクセスできるマシンから、Skupper ゲートウェイのステータスを確認します。
$ skupper gateway status Gateway Definition: ╰─ machine-user type:service version:1.8 ╰─ Bindings: ╰─ mydb:3306 tcp mydb:3306 localhost 3306
これは、公開されるサービスが 1 つだけあり、サービスは単一のポート (BIND) のみを公開することを示しています。ローカルホストへ転送されるポートはありません。
ポートの変更など、ゲートウェイの定義を変更する必要がある場合は、既存のゲートウェイを削除し、この手順を最初から繰り返してゲートウェイを再定義する必要があります。