CLI を使用してアダプターをプロビジョニングする

Anypoint Service Mesh を使用してサービスを管理する前に、Anypoint Service Mesh アダプターをプロビジョニングして名前空間を準備する必要があります。プロビジョニングでは、Anypoint Service Mesh 構成で使用する名前空間を準備します。Anypoint Service Mesh で API を保護するすべての名前空間に対して、アダプターをプロビジョニングする必要があります。

アダプターは、Anypoint Platform からポリシーを取得し、ポリシーを満足しているかどうかを確認して、分析データを Anypoint Platform に返すポリシー適用コンポーネントとして機能します。

アダプターをプロビジョニングしたら、Kubernetes クラスターの各ポッドに Envoy サイドカーが挿入されるように、すべての既存アプリケーションを再デプロイする必要があります。

アダプタープラン

アダプターをプロビジョニングするときは、Anypoint Service Mesh で管理するシステムの CPU 数とメモリ量に応じたアダプターサイズを指定する必要があります。現在サポートされているアダプタープランは次のとおりです。

プラン CPU (コア数) メモリ (GiB) API 制限

small

.5

1

25

medium

1

1.5

50

large

2

2

100

アダプターのサイズは、プロビジョニング後でも変更できます。サイズプランを変更すると、アダプターデプロイメントが適切に更新されます。そして Kubernetes は、新しい情報でポッドを作成します。ただし、新しいポッドの準備ができるまで、古いアダプターが要求を引き続き処理します。

新しいアダプターの準備ができると、古いポッドは終了し、すべての要求は新しいアダプターに送られます。更新時にスペース不足で新しいポッドを開始できない場合や、ポッドが準備できていない場合は、Kubernetes イベントにエラーメッセージが記録されます。この場合は、新しいポッドが使用できないため、古いアダプターが要求の処理を継続します。

不要になったアダプターは削除できます。ただし、アダプターを削除する前に、そのアダプターの既存のバインドをすべて削除する必要があります。

アダプターの状況

アダプターをプロビジョニングしたりアプリケーションにバインドしたりすると、アダプターコマンドの実行後にメッセージが表示されます。メッセージは、アダプターが、正常に作成、削除、または変更されたことを示します。

さらに、アダプターの状況を確認することで、アダプターの詳細を調べることができます。アダプターの状況を見るには、次のコマンドを実行します。

asmctl adapter list

状況の値には次のようなものがあります。

  • Ready​: アダプターを使用する準備ができています。

  • Failed​: アダプターが正常に作成されませんでした。エラーが発生しました。

  • Provisioning​: アダプターはプロビジョニング中です。

  • DeprovisionBlockedByExisingCredentials​: アダプターに使用中のバインドがあります。

    アダプターを削除する前に、関連付けられているすべてのバインドを削除する必要があります。

アダプターコマンドの CLI ヘルプ

Anypoint Service Mesh をインストールしたら、コマンドラインインターフェース (CLI) ヘルプを使用して、Anypoint Service Mesh のコマンドとパラメーターの情報を見ることができます。

asmctl adapter help

$ asmctl adapter help
INFO: Usage:
INFO:   asmctl adapter list
INFO:   asmctl adapter sizes
INFO:   asmctl adapter binding
INFO:   asmctl adapter create --namespace=NAMESPACE --name=NAME --clientId=CLIENT_ID --clientSecret=CLIENT_SECRET --size=SIZE --replicas=REPLICAS
INFO:   asmctl adapter delete --namespace=NAMESPACE --name=NAME
INFO:   asmctl adapter logs --namespace=NAMESPACE --name=NAME
INFO:
INFO: Options:
INFO:   --clientId=CLIENT_ID          Client Id.
INFO:   --clientSecret=CLIENT_SECRET  Client Secret.
INFO:   --name=NAME                   Adapter name.
INFO:   --namespace=NAMESPACE         Kubernetes Namespace.
INFO:   --replicas=REPLICAS           Number of replicas [1..8] [default: 2].
INFO:   --size=SIZE                   Adapter Size. See 'asmctl adapter sizes' [default: medium].
INFO:
INFO: Examples:
INFO:   # Create a new Adapter
INFO:   asmctl adapter create --namespace=nto-payment --name=adapter --clientId=1234abc1234abc1234abc1234abc1234 --clientSecret=<OMITTED> --size=small --replicas=1
INFO:
INFO:   # Show Adapter logs
INFO:   asmctl adapter logs --namespace=nto-payment --name=adapter
INFO:
INFO:   # Delete an Adapter
INFO:   asmctl adapter delete --namespace=nto-payment --name=adapter
INFO:
INFO:   # List all created Adapters
INFO:   asmctl adapter list

CLI を使用してアダプターをプロビジョニングする

アダプターをプロビジョニングする前に、タスクの前提条件を完了してください。

タスクの前提条件

アダプター名、バインド名、サービス名など、すべてのオブジェクト名は小文字で入力する必要があります (例: test_adapter_name​)。Kubernetes の命名規則に従っていないと、エラーがスローされます。

CLI を使用して Anypoint Service Mesh アダプターをプロビジョニングする手順は次のとおりです。

  1. プラン​に基づいてアダプターサイズを決定します。

  2. API Manager のメインページで、​[Environment Information (環境情報)]​ をクリックして、環境のクライアント ID とクライアントシークレットのログイン情報を取得します。

  3. コマンドウィンドウで、Anypoint Service Mesh のインストーラーをダウンロードしたディレクトリに移動し、次のコマンドを実行してアダプターを作成します。

    asmctl adapter create \
    --name=<adapter name> \
    --namespace=<adapter namespace> \
    --size=<adapter plan size> \
    --replicas=<amount of replicas for the adapter> \
    --clientId=<clientId of the environment or organization> \
    --clientSecret=<client secret of the environment or organization>
    パラメーター名 説明 必須または省略可能 デフォルト値

    name

    作成するアダプターの名前 (例: service-mesh-test-adapter)。

    必須

    適用なし

    namespace

    アダプターを作成する名前空間 (例: mulesoft-apps)。

    必須

    適用なし

    size

    使用する CPU 数とメモリ量に基づいたアダプターのサイズ。

    省略可能

    medium

    replicas

    Mule アダプターに対して作成するレプリカの数。高可用性を保証するには、2 以上の値が推奨されます。

    省略可能

    2

    clientId

    環境 (推奨) または組織のクライアント ID。このドキュメントの権限とロールの前提条件の手順で取得したクライアント ID を使用してください。

    必須

    適用なし

    clientSecret

    環境 (推奨) または組織のクライアントシークレット。このドキュメントの権限とロールの前提条件の手順で取得したクライアントシークレットを使用してください。

    必須

    適用なし

    platformUri

    Anypoint Platform がインストールされているホスト。

    省略可能

    https://anypoint.mulesoft.com

  4. アダプターの状況​を確認します。

    asmctl adapter list

    出力例
  5. アダプターのログで、Kubernetes イベントとアダプタートランザクションの詳細を確認します。

    asmctl adapter logs --name=<adapter_name> --namespace=<namespace>

  6. Anypoint Service Mesh のインストールを開始する前に名前空間ですでに実行されていた各アプリケーションに対して、次のコマンドを 1 つずつ実行します。

    1. パッチのデプロイメント名を取得します。

      kubectl get deployments -n <namespace>

    2. 上のコマンドで取得したデプロイメント名を使用して、Anypoint Service Mesh で管理する必要のあるすべてのサービスを再起動し、ポッドにサイドカーを挿入します。

      kubectl -n <adapter-namespace> patch deploy <deployname> --type=json -p='[{"op": "replace", "path": "/spec/template/metadata/labels/service-mesh.mulesoft.com","value":"enable"}]'

  7. 以下のコマンドを実行して、アプリケーションが再デプロイされたことを確認します。

    kubectl get pods -n <namespace>​。