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


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

手順

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

    $ skupper service create <name> <port>

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

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

    以下に例を示します。

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

    $ skupper gateway generate-bundle <config-filename> <destination-directory>

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

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

    以下に例を示します。

    $ skupper gateway generate-bundle database.yaml ./

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

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

    $ mkdir gateway
    
    $ tar -xvf <gateway-definition-file> --directory gateway
    $ cd gateway
    $ sh ./launch.py
    注記

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

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

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

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

    $ systemctl --user status <gateway-definition-name>

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

    $ podman inspect

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

    $ docker inspect
    注記

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

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

    $ skupper gateway status
    Gateway Definition:
    ╰─ machine-user type:service version:1.8
       ╰─ Bindings:
          ╰─ mydb:3306 tcp mydb:3306 localhost 3306

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

注記

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

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.