1.7. ローカルマシンからのサービスネットワーク上のサービスの公開


サービスネットワークの作成後、サービスネットワーク上のローカルマシンからサービスを公開することができます。

たとえば、データセンターのサーバーでデータベースを実行する場合は、データベースがクラスターで実行しているかのようにデータにアクセスできるクラスターにフロントエンドをデプロイすることができます。

1.7.1. サービスネットワークにシンプルなローカルサービスの公開

本セクションでは、サービスネットワーク上でローカルで実行している単一のサービスを公開する方法を説明します。

前提条件

  • サービスネットワーク。必要なサイトは 1 つだけです。
  • サービスネットワークへのアクセス。
  • デフォルトの service タイプのゲートウェイのための skrouterd

手順

  1. サービスをローカルに実行します。
  2. クラスターにログインし、実際のサイトの namespace に移動します。
  3. サービスネットワーク上でサービスを公開します。

    $ skupper gateway expose <service> localhost <port>
    Copy to Clipboard Toggle word wrap
    • <service> - サービスネットワーク上のサービスの名前。
    • <port> - サービスをローカルで実行するポート。
    注記

    たとえば、MySQL が専用サーバー (IP アドレス 192.168.1.200) で実行しているが、同じネットワーク内のマシンからクラスターにアクセスしている場合など、ローカルネットワーク上の他のマシンからサービスを公開することもできます。

    $ skupper gateway expose mysql 192.168.1.200 3306
    Copy to Clipboard Toggle word wrap
  4. Skupper ゲートウェイのステータスを確認します。

    $ skupper gateway status
    
    Gateway Definition:
    ╰─ machine-user type:service version:2.2.1.redhat.1.1.0-2
       ╰─ Bindings:
          ╰─ mydb:3306 tcp mydb:3306 localhost 3306
    Copy to Clipboard Toggle word wrap

    これは、公開されるサービスが 1 つだけあり、サービスは単一のポート (BIND) のみを公開することを示しています。ローカルホストへ転送されるポートはありません。

    URL フィールドは基礎となる通信を示し、無視できます。

1.7.2. サービスネットワーク上で複雑なローカルサービスの使用

このセクションでは、skupper ゲートウェイの高度な使用方法を説明します。

  1. Skupper ゲートウェイを作成します。

    $ skupper gateway init --type <gateway-type>
    Copy to Clipboard Toggle word wrap
    注記

    デフォルトのサービスタイプのゲートウェイでは、skrouterd が実行されている必要があります。

    デフォルトでは、サービス タイプのゲートウェイが作成されますが、以下を指定することも可能です。

    • podman
    • docker
  2. サービスネットワーク上で通信可能なサービスを作成します。

    $ skupper service create <name> <port>
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    • <name> - 作成するサービスの名前。
    • <port> - サービスが使用するポート。

    以下に例を示します。

    $ skupper service create mydb 3306
    Copy to Clipboard Toggle word wrap
  3. サービスネットワーク上のサービスをバインドします。

    $ skupper gateway bind <service> <host> <port>
    Copy to Clipboard Toggle word wrap
    • <service> - サービスネットワーク上のサービス名 (上記の例では mydb )。
    • <host> - サービスを実行するホスト。
    • <port> - サービスが実行中のポート。上記の例の 3306
  4. Skupper ゲートウェイのステータスを確認します。

    $ skupper gateway status
    Gateway Definitions Summary
    
    Gateway Definition:
    ╰─ machine-user type:service version:2.2.1.redhat.1.1.0-2
       ╰─ Bindings:
          ╰─ mydb:3306 tcp mydb:3306 localhost 3306
    Copy to Clipboard Toggle word wrap

    これは、公開されるサービスが 1 つだけあり、サービスは単一のポート (BIND) のみを公開することを示しています。ローカルホストへ転送されるポートはありません。

    URL フィールドは基礎となる通信を示し、無視できます。

    サービスネットワークに追加のサービスを作成し、さらにローカルサービスをバインドして、これらのサービスをサービスネットワーク上で公開することができます。

  5. サービスネットワークからローカルマシンにサービスを転送します。

    $ skupper gateway forward <service> <port>
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    • <service> は、サービスネットワーク上の既存サービスの名前です。
    • <port> は、使用するローカルマシンのポートです。

1.7.3. ゲートウェイを作成し、別のマシンでそれを適用する

1 台のマシンからクラスターにアクセスできるが、別のマシンからサービスネットワークへのゲートウェイを作成したい場合は、この手順で説明するように、最初のマシンでゲートウェイ定義バンドルを作成し、後でその定義バンドルを 2 台目のマシンに適用することができます。たとえば、ローカルのデータベースサービスをサービスネットワークに公開しても、データベースサーバーからクラスターにアクセスしたくない場合は、この手順を使用して定義バンドルを作成し、データベースサーバーに適用することができます。

手順

  1. 1 台目のマシンからクラスターにログインし、サイトの namespace に変更します。
  2. サービスネットワーク上で通信可能なサービスを作成します。

    $ skupper service create <name> <port>
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    • <name> - 作成するサービスの名前。
    • <port> - サービスが使用するポート。

    以下に例を示します。

    $ skupper service create database 5432
    Copy to Clipboard Toggle word wrap
  3. 公開するサービスを表す 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
    Copy to Clipboard Toggle word wrap
    1
    ゲートウェイ名。参照のみの場合に役立ちます。
    2
    バインディング名。複数のバインディングを追跡する際に役立ちます。
    3
    公開したいサービスを提供しているホストの名前。
    4
    サービスネットワーク上のサービス名とポート。前のステップでサービスを作成しました。
    5
    サービスを公開するために使用するプロトコル、tcphttp、または http2
    6
    このサービスを利用できるようにするサービスネットワーク上のポート。
    7
    ポイント 3 で指定されたホストで実行されているサービスのポート。
  4. ゲートウェイの名前を使用して、YAML ファイルを保存します (例: gateway.yaml)。
  5. サービスネットワーク上で公開するサービスをホストするマシンに適用できるバンドルを生成します。

    $ skupper gateway generate-bundle <config-filename> <destination-directory>
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    • <config-filename> - 前のステップで生成した YAML ファイルの名前 (接尾辞を含む)。
    • <destination-directory> - 結果のゲートウェイバンドルを保存する場所 (例: ~/gateways)。

    以下に例を示します。

    $ skupper gateway generate-bundle database.yaml ./
    Copy to Clipboard Toggle word wrap

    このバンドルには、サービスネットワークへのアクセスを許可するゲートウェイ定義の YAML と証明書が含まれています。

  6. ゲートウェイ定義ファイル (mylaptop-jdoe.tar.gz など) を、サービスネットワーク上で公開するサービスをホストするマシンにコピーします。
  7. 公開したいサービスをホストしているマシンから、以下を実行します。

    $ mkdir gateway
    
    $ tar -xvf <gateway-definition-file> --directory gateway
    $ cd gateway
    $ sh ./launch.py
    Copy to Clipboard Toggle word wrap
    注記

    ./launch.py -t podman または./launch.py -t docker を使用して、コンテナーで Skupper ルーターを実行します。

    ゲートウェイバンドルを実行すると、ゲートウェイ定義 YAML と証明書を使用して、サービスネットワーク上のサービスにアクセスして公開します。

  8. ゲートウェイサービスのステータスを確認します。

    サービス タイプのゲートウェイを確認するには、以下を実行します。

    $ systemctl --user status <gateway-definition-name>
    Copy to Clipboard Toggle word wrap

    podman タイプのゲートウェイを確認するには、以下を実行します。

    $ podman inspect
    Copy to Clipboard Toggle word wrap

    docker タイプのゲートウェイを確認するには、以下を実行します。

    $ docker inspect
    Copy to Clipboard Toggle word wrap
    注記

    後で ./remove.py を使用してゲートウェイを削除できます。

  9. クラスターにアクセスできるマシンから、Skupper ゲートウェイのステータスを確認します。

    $ skupper gateway status
    Gateway Definition:
    ╰─ machine-user type:service version:2.2.1.redhat.1.1.0-2
       ╰─ Bindings:
          ╰─ mydb:3306 tcp mydb:3306 localhost 3306
    Copy to Clipboard Toggle word wrap

    これは、公開されるサービスが 1 つだけあり、サービスは単一のポート (BIND) のみを公開することを示しています。ローカルホストへ転送されるポートはありません。

注記

ポートの変更など、ゲートウェイの定義を変更する必要がある場合は、既存のゲートウェイを削除し、この手順を最初から繰り返してゲートウェイを再定義する必要があります。

1.7.4. ゲートウェイ YAML リファレンス

「ゲートウェイを作成し、別のマシンでそれを適用する」 では、ゲートウェイ定義 YAML ファイルを使用して、別のマシンで適用するゲートウェイを作成する方法を説明します。

以下は、ゲートウェイ定義 YAML ファイルの有効なエントリーです。

name
ゲートウェイの名前。
bindings.name
単一ホストのバインディングの名前。
bindings.host
ローカルサービスのホスト名。
bindings.service
サービスネットワークで利用できるようにしたいサービスの定義。
bindings.service.address
サービスネットワーク上のアドレス、名前、ポート。
bindings.service.protocol
Skupper プロトコル、tcphttp または http2
bindings.service.ports
サービスネットワーク上で利用可能になる単一のポート。
bindings.service.target_ports
サービスネットワーク上で公開したい単一のポート。
注記

ローカルサービスで複数のポートが必要な場合は、ポートごとに個別のバインディングを作成します。

forwards.name
単一ホストの転送の名前。
forwards.host
ローカルサービスのホスト名。
forwards.service
ローカルで利用できるようにしたいサービスの定義。
forwards.service.address
ローカルで使用したいサービスネットワーク上のアドレス、名前、ポート。
forwards.service.protocol
Skupper プロトコル、tcphttp または http2
forwards.service.ports
サービスネットワークで利用可能な単一のポート。
forwards.service.target_ports
ローカルで使用したい単一のポート。
注記

ネットワークサービスに複数のポートが必要な場合は、ポートごとに個別の転送を作成します。

qdr-listeners
skupper ルーターのリスナーの定義。
qdr-listeners.name
skupper ルーターの名前 (通常は amqp)。
qdr-listeners.host
skupper ルーターのホスト名 (通常は localhost)。
qdr-listeners.port
skupper ルーターのポート (通常は 5672)。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat