ローカルモードでトークンを使用した登録と実行

始める前に

Flex Gateway を登録する前に、以下のタスクを完了する必要があります。

  • Flex Gateway のインストール

  • Anypoint Platform 管理者に Runtime Manager での​「Manage Servers (サーバーの管理)」​権限と​「Read Servers (サーバーの参照)」​権限を要求します。

  • Anypoint Platform インスタンスから以下の情報を収集します。

    • Flex Gateway を実行する組織の​組織 ID

      組織 ID の見つけ方については、​「組織 ID を見つける」​を参照してください。

    • Flex Gateway を実行する Anypoint Platform 環境の登録​トークン

      Runtime Manager に移動して、左側のナビゲーションにある ​[Flex Gateway]​ を選択し、​[Add Gateway (ゲートウェイを追加)]​ をクリックして、登録トークンを使用したコマンドブロックを含む命令セットを生成します。

トークンを使用した Linux サービスとしての登録と実行

Anypoint Platform で Flex Gateway を登録するには、登録コマンドに続いて開始コマンドを入力する必要があります。各コマンドには、Anypoint Platform インスタンスに特有の情報が含まれ、​実行前に更新する必要​があります。必要な情報の見つけ方については、始める前に​[Before You Begin]​を参照してください。

登録データの収集

Flex Gateway インスタンスを登録する前に、次の登録コマンドオプションの情報を収集します。

  • --token​ = Anypoint Platform の環境の登録トークン

  • --organization​ = Anypoint Platform の組織 ID

  • --split​ (省略可能) = 登録情報を複数のファイルに分割するかどうかを決定するフラグ。デフォルト値は ​false​ です。

    split​ が ​true​ に設定されている場合、登録情報は ​registration.yaml​ と ​certificate.yaml​ の 2 つのファイルに分割されます。​false​ の場合、すべての登録情報は 1 つの ​registration.yaml​ ファイルに含まれます。

  • --output-directory​ (省略可能) = 登録情報を出力するディレクトリ

  • my-gateway​ = ゲートウェイクラスターに割り当てる名前

Flex Gateway を登録する

コマンドオプションについて収集したデータを使用して、Flex Gateway インスタンスを登録します。

flexctl register \
--token=<your-registration-token> \
--organization=<your-org-id> \
--output-directory=/usr/local/share/mulesoft/flex-gateway/conf.d \
my-gateway

このコマンドの実行時にファイル権限の問題が発生した場合は、​sudo​ を使用してください。

欧州では、​--anypoint-url=https://eu1.anypoint.mulesoft.com​ フラグをコマンドに追加する必要があります。

出力ディレクトリに次の新しい登録ファイルが含まれます。

  • registration.yaml

  • certificate.yaml​ (​split​ 登録パラメーターが ​true​ に設定されている場合にのみ生成。それ以外の場合、証明書情報は ​registration.yaml​ に含まれる)

生成されるこれらのファイルは、Flex Gateway を接続するためのログイン情報です。これらのファイルを消失すると、Flex Gateway を接続できなくなります。

開始コマンド

次のコマンドで Flex Gateway を開始します。

sudo systemctl start flex-gateway

Flex Gateway サービスが正常に実行されていることを確認します。

systemctl list-units flex-gateway*

flex-gateway.service​ の状況が ​[active (アクティブ)]​ である場合、Flex Gateway は正常に実行されています。

  UNIT                              LOAD   ACTIVE SUB     DESCRIPTION
  flex-gateway.service              loaded active running Application

トークンを使用した Docker コンテナでの登録と実行

Anypoint Platform で Flex Gateway を登録するには、登録コマンドに続いて開始コマンドを入力する必要があります。各コマンドには、Anypoint Platform インスタンスに特有の情報が含まれ、​実行前に更新する必要​があります。必要な情報の見つけ方については、始める前に​[Before You Begin]​を参照してください。

登録データの収集

Flex Gateway インスタンスを登録する前に、次の登録コマンドオプションの情報を収集します。

  • --token​ = Anypoint Platform の環境の登録トークン

  • --organization​ = Anypoint Platform の組織 ID

  • --split​ (省略可能) = 登録情報を複数のファイルに分割するかどうかを決定するフラグ。デフォルト値は ​false​ です。

    split​ が ​true​ に設定されている場合、登録情報は ​registration.yaml​ と ​certificate.yaml​ の 2 つのファイルに分割されます。​false​ の場合、すべての登録情報は 1 つの ​registration.yaml​ ファイルに含まれます。

  • --output-directory​ (省略可能) = 登録情報を出力するディレクトリ

  • my-gateway​ = ゲートウェイクラスターに割り当てる名前

Flex Gateway を登録する

コマンドオプションについて収集したデータを使用して、Flex Gateway インスタンスを登録します。

flex-registration​ という名前 (または同様の名前) の新しいディレクトリを作成し、この新しいディレクトリで登録コマンドを実行します。コマンドにより、この場所に登録ファイルが作成されます。
docker run --entrypoint flexctl \
-v "$(pwd)":/registration -u $UID mulesoft/flex-gateway \
register \
--token=<your-registration-token> \
--organization=<your-org-id> \
--output-directory=/registration \
my-gateway

このコマンドの実行時にファイル権限の問題が発生した場合は、​sudo​ を使用してください。

欧州では、​--anypoint-url=https://eu1.anypoint.mulesoft.com​ フラグをコマンドに追加する必要があります。

出力ディレクトリに次の新しい登録ファイルが含まれます。

  • registration.yaml

  • certificate.yaml​ (​split​ 登録パラメーターが ​true​ に設定されている場合にのみ生成。それ以外の場合、証明書情報は ​registration.yaml​ に含まれる)

生成されるこれらのファイルは、Flex Gateway を接続するためのログイン情報です。これらのファイルを消失すると、Flex Gateway を接続できなくなります。

開始コマンド

登録コマンドを実行したディレクトリで、次の開始コマンドを実行します。

docker run --rm \
-v "$(pwd)":/usr/local/share/mulesoft/flex-gateway/conf.d \
-p 8080:8080 \
mulesoft/flex-gateway
-e ​FLEX_NAME​=<name-for-flex-replica> \ を含めて、Flex レプリカに割り当てる名前 (省略可能) を指定します。

Docker ログには次の行が記録されます。

[flex-gateway-envoy][info] all dependencies initialized. starting workers

トークンを使用した Kubernetes クラスターでの登録と実行

Flex Gateway を登録し、Helm を使用して Flex Gateway をクラスターのノードにデプロイします。

ロールベースのアクセス制御 (RBAC) を有効にする Kubernetes クラスターに Flex Gateway をデプロイする場合、Flex Gateway で使用されるカスタムリソース定義 (CRD) のインストールを許可するクラスターレベルの権限が必要です。

次の手順を実行します。

通常、ローカルモードの Flex Gateway は、クラスターへの外部アクセスを管理するイングレスコントローラーとして機能します。Flex Gateway は、内部 (east-west) トラフィックのスタンドアロンゲートウェイとして機能することもできます。

このモードを使用する場合、作成および適用するリソースを把握して、​kubectl apply​ を使用して Kubernetes 対象およびリソース (API、ポリシー、Flex Gateway 関連のリソース) をゲートウェイにデプロイする必要があります。

Ingress​ リソースを適用してゲートウェイルーティングルールを設定すると、Flex Gateway はイングレスコントローラーとして機能します。YAML ファイルを介してこの設定を行います。このファイルでは、ロードバランサーまたはプロキシサーバー、および HTTP と HTTPS トラフィックを転送する​ルール​を設定するための他のプロパティ (​apiVersion​、​kind​、​metadata​、​spec​ など) がサポートされています。Flex Gateway での ​Ingress​ リソースの管理方法についての詳細は、「ローカルモードでのイングレスコントローラーとしての Flex Gateway の設定」を参照してください。

登録データの収集

Flex Gateway インスタンスを登録する前に、次の登録コマンドオプションの情報を収集します。

  • --token​ = Anypoint Platform の環境の登録トークン

  • --organization​ = Anypoint Platform の組織 ID

  • --split​ (省略可能) = 登録情報を複数のファイルに分割するかどうかを決定するフラグ。デフォルト値は ​false​ です。

    split​ が ​true​ に設定されている場合、登録情報は ​registration.yaml​ と ​certificate.yaml​ の 2 つのファイルに分割されます。​false​ の場合、すべての登録情報は 1 つの ​registration.yaml​ ファイルに含まれます。

  • --output-directory​ (省略可能) = 登録情報を出力するディレクトリ

  • my-gateway​ = ゲートウェイクラスターに割り当てる名前

Flex Gateway を登録する

コマンドオプションについて収集したデータを使用して、Flex Gateway インスタンスを登録します。

docker run --entrypoint flexctl \
-v "$(pwd)":/registration -u $UID mulesoft/flex-gateway \
register \
--token=<your-registration-token> \
--organization=<your-org-id> \
--output-directory=/registration \
my-gateway

このコマンドの実行時にファイル権限の問題が発生した場合は、​sudo​ を使用してください。

欧州では、​--anypoint-url=https://eu1.anypoint.mulesoft.com​ フラグをコマンドに追加する必要があります。

出力ディレクトリに次の新しい登録ファイルが含まれます。

  • registration.yaml

  • certificate.yaml​ (​split​ 登録パラメーターが ​true​ に設定されている場合にのみ生成。それ以外の場合、証明書情報は ​registration.yaml​ に含まれる)

生成されるこれらのファイルは、Flex Gateway を接続するためのログイン情報です。これらのファイルを消失すると、Flex Gateway を接続できなくなります。

名前空間への Helm チャートのインストール

Helm チャートで Flex Gateway、監視ツール、アプリケーションをインストールします。 Helm バージョン 3.0.0 以降が必要です。 設定オプションについては、​Helm チャート設定​を参照してください。

  1. チャートの ​flex-gateway​ という名前の Helm リポジトリを追加します。

    helm repo add flex-gateway https://flex-packages.anypoint.mulesoft.com/helm

    このコマンドにより、リポジトリが追加されます。その名前の Helm リポジトリがすでにマシンに存在する場合はこのプロセスはスキップされます。

    • 新しいリポジトリの場合、コマンドで次のメッセージが返されます。

      "flex-gateway" has been added to your repositories
    • リポジトリがすでに存在する場合、コマンドで次のメッセージが返されます。

      "flex-gateway" already exists with the same configuration, skipping
  2. helm repo up​ を実行します。

    コマンドで次のメッセージが返されます。

    Hang tight while we grab the latest from your chart repositories...
    ...Successfully got an update from the "flex-gateway" chart repository
    Update Complete. ⎈Happy Helming!⎈

    マシンに複数の Helm リポジトリがある場合、ターミナルウィンドウのメッセージにすべてのリポジトリがリストされます。

  3. ローカルモードでゲートウェイをデプロイするための Helm コマンドを実行します。

    helm -n gateway upgrade -i --create-namespace \
    --wait ingress flex-gateway/flex-gateway \
    --set-file registration.content=registration.yaml

    このコマンドにより、​gateway​ 名前空間と ​ingress​ という名前のリリースが作成されます (これらが存在しない場合)。名前空間とリリースには、任意の名前を使用できます。Helm リポジトリ名と Helm チャート名のコマンド構文は、​<helm-repo-name>/<helm-chart-name>​ です。

    このコマンドが成功すると、​ingress​ リリースへのアップグレードを示すメッセージが出力されます。

    Release "ingress" does not exist. Installing it now.
    NAME: ingress
    LAST DEPLOYED: Mon Mar 20 21:36:19 2023
    NAMESPACE: gateway
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None

    同じ名前空間、リポジトリ、チャート名でこのコマンドを実行するたびに、​ingress​ リリースの ​REVISION​ 値が ​1​ ずつ増加します。たとえば、2 回コマンドを実行すると、新しいリビジョン番号が表示されます (​REVISION: 2​)。​LAST DEPLOYED​ には、そのリビジョンの日付が反映されます。

Helm チャート設定

新しい値でデフォルトの Helm 設定 (CPU やメモリ設定の ​resource​ 値など) を変更するには、「​Helm チャートを介した Flex Gateway デプロイメントのポッド設定の更新. For additional Helm chart configurations, see Kubernetes デプロイメントの管理​」を参照してください。

Flex Gateway デプロイメントの Helm チャートを変更する前に、デフォルトの Helm チャート設定を確認してください。

  • ArtifactHUB​ の ​flex-gateway​ ページを開く

  • ターミナルウィンドウから ​helm show values <repository-name>/<chart-name>​ を実行します。

    例:
    helm show values flex-gateway/flex-gateway

    この例では、同じ名前のリポジトリおよびチャートの​デフォルト​値を返します。

Helm チャートの ​README​ を表示するには、ターミナルウィンドウから ​helm show readme <repository-name>/<chart-name>​ を実行します。

例:
helm show readme flex-gateway/flex-gateway

トークンを使用した OpenShift クラスターでの登録と実行

Flex Gateway を登録し、Helm を使用して Flex Gateway をクラスターのノードにデプロイします。

ロールベースのアクセス制御 (RBAC) を有効にする Kubernetes クラスターに Flex Gateway をデプロイする場合、Flex Gateway で使用されるカスタムリソース定義 (CRD) のインストールを許可するクラスターレベルの権限が必要です。 OpenShift では、​cluster-admin​ ロールによってこのレベルのアクセスが提供されます。

コマンドラインからの OpenShift の手順と Kubernetes の手順は同じです。 次の手順を実行します。

通常、ローカルモードの Flex Gateway は、クラスターへの外部アクセスを管理するイングレスコントローラーとして機能します。Flex Gateway は、内部 (east-west) トラフィックのスタンドアロンゲートウェイとして機能することもできます。

このモードを使用する場合、作成および適用するリソースを把握して、​kubectl apply​ を使用して Kubernetes 対象およびリソース (API、ポリシー、Flex Gateway 関連のリソース) をゲートウェイにデプロイする必要があります。

Ingress​ リソースを適用してゲートウェイルーティングルールを設定すると、Flex Gateway はイングレスコントローラーとして機能します。YAML ファイルを介してこの設定を行います。このファイルでは、ロードバランサーまたはプロキシサーバー、および HTTP と HTTPS トラフィックを転送する​ルール​を設定するための他のプロパティ (​apiVersion​、​kind​、​metadata​、​spec​ など) がサポートされています。Flex Gateway での ​Ingress​ リソースの管理方法についての詳細は、「ローカルモードでのイングレスコントローラーとしての Flex Gateway の設定」を参照してください。

登録データの収集

Flex Gateway インスタンスを登録する前に、次の登録コマンドオプションの情報を収集します。

  • --token​ = Anypoint Platform の環境の登録トークン

  • --organization​ = Anypoint Platform の組織 ID

  • --split​ (省略可能) = 登録情報を複数のファイルに分割するかどうかを決定するフラグ。デフォルト値は ​false​ です。

    split​ が ​true​ に設定されている場合、登録情報は ​registration.yaml​ と ​certificate.yaml​ の 2 つのファイルに分割されます。​false​ の場合、すべての登録情報は 1 つの ​registration.yaml​ ファイルに含まれます。

  • --output-directory​ (省略可能) = 登録情報を出力するディレクトリ

  • my-gateway​ = ゲートウェイクラスターに割り当てる名前

Flex Gateway を登録する

コマンドオプションについて収集したデータを使用して、Flex Gateway インスタンスを登録します。

docker run --entrypoint flexctl \
-v "$(pwd)":/registration -u $UID mulesoft/flex-gateway \
register \
--token=<your-registration-token> \
--organization=<your-org-id> \
--output-directory=/registration \
my-gateway

このコマンドの実行時にファイル権限の問題が発生した場合は、​sudo​ を使用してください。

欧州では、​--anypoint-url=https://eu1.anypoint.mulesoft.com​ フラグをコマンドに追加する必要があります。

出力ディレクトリに次の新しい登録ファイルが含まれます。

  • registration.yaml

  • certificate.yaml​ (​split​ 登録パラメーターが ​true​ に設定されている場合にのみ生成。それ以外の場合、証明書情報は ​registration.yaml​ に含まれる)

生成されるこれらのファイルは、Flex Gateway を接続するためのログイン情報です。これらのファイルを消失すると、Flex Gateway を接続できなくなります。

名前空間への Helm チャートのインストール

Helm チャートで Flex Gateway、監視ツール、アプリケーションをインストールします。 Helm バージョン 3.0.0 以降が必要です。 設定オプションについては、​Helm チャート設定​を参照してください。

  1. チャートの ​flex-gateway​ という名前の Helm リポジトリを追加します。

    helm repo add flex-gateway https://flex-packages.anypoint.mulesoft.com/helm

    このコマンドにより、リポジトリが追加されます。その名前の Helm リポジトリがすでにマシンに存在する場合はこのプロセスはスキップされます。

    • 新しいリポジトリの場合、コマンドで次のメッセージが返されます。

      "flex-gateway" has been added to your repositories
    • リポジトリがすでに存在する場合、コマンドで次のメッセージが返されます。

      "flex-gateway" already exists with the same configuration, skipping
  2. helm repo up​ を実行します。

    コマンドで次のメッセージが返されます。

    Hang tight while we grab the latest from your chart repositories...
    ...Successfully got an update from the "flex-gateway" chart repository
    Update Complete. ⎈Happy Helming!⎈

    マシンに複数の Helm リポジトリがある場合、ターミナルウィンドウのメッセージにすべてのリポジトリがリストされます。

  3. ローカルモードでゲートウェイをデプロイするための Helm コマンドを実行します。

    helm -n gateway upgrade -i --create-namespace \
    --wait ingress flex-gateway/flex-gateway \
    --set-file registration.content=registration.yaml

    このコマンドにより、​gateway​ 名前空間と ​ingress​ という名前のリリースが作成されます (これらが存在しない場合)。名前空間とリリースには、任意の名前を使用できます。Helm リポジトリ名と Helm チャート名のコマンド構文は、​<helm-repo-name>/<helm-chart-name>​ です。

    このコマンドが成功すると、​ingress​ リリースへのアップグレードを示すメッセージが出力されます。

    Release "ingress" does not exist. Installing it now.
    NAME: ingress
    LAST DEPLOYED: Mon Mar 20 21:36:19 2023
    NAMESPACE: gateway
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None

    同じ名前空間、リポジトリ、チャート名でこのコマンドを実行するたびに、​ingress​ リリースの ​REVISION​ 値が ​1​ ずつ増加します。たとえば、2 回コマンドを実行すると、新しいリビジョン番号が表示されます (​REVISION: 2​)。​LAST DEPLOYED​ には、そのリビジョンの日付が反映されます。

Helm チャート設定

新しい値でデフォルトの Helm 設定 (CPU やメモリ設定の ​resource​ 値など) を変更するには、「​Helm チャートを介した Flex Gateway デプロイメントのポッド設定の更新. For additional Helm chart configurations, see Kubernetes デプロイメントの管理​」を参照してください。

Flex Gateway デプロイメントの Helm チャートを変更する前に、デフォルトの Helm チャート設定を確認してください。

  • ArtifactHUB​ の ​flex-gateway​ ページを開く

  • ターミナルウィンドウから ​helm show values <repository-name>/<chart-name>​ を実行します。

    例:
    helm show values flex-gateway/flex-gateway

    この例では、同じ名前のリポジトリおよびチャートの​デフォルト​値を返します。

Helm チャートの ​README​ を表示するには、ターミナルウィンドウから ​helm show readme <repository-name>/<chart-name>​ を実行します。

例:
helm show readme flex-gateway/flex-gateway