Flex Gateway新着情報
Governance新着情報
Monitoring API Managerバインドを作成すると、Anypoint Service Mesh によって Kubernetes のサービス、サービスを表すために Anypoint Platform で作成した API、サービス用に作成したアダプターの 3 方向の関連付けが作成されます。
アダプターでは一意の API ID を使用してポリシーを取得し、クラスターで実行されているサービスに適用します。
Anypoint Platform を使用して API を作成した場合は、API ID を使用してサービスをバインドします。ただし、CRD を使用して API を作成した場合は、Kubernetes API リソース名を使用してサービスをバインドする必要があります。
バインドを作成した後、Anypoint Service Mesh によってバインド手順が実行され、状況が更新されるまで数秒かかります。バインドが完了すると、list
コマンドを使用して状況を表示できるようになります。状況の値には次のようなものがあります。
Ready (準備完了): バインドを使用する準備ができました。
Failed (失敗): バインドは正常に作成されませんでした。エラーが発生しました。
Binding (バインド): バインドは特定のアプリケーションへの関連付けの処理中です。
次の例では、anypoint-service-mesh-adapter
アダプターを customers
サービスにバインドするために customers
という名前のバインドが作成されています。このバインドは、アダプターが以前に作成されたのと同じ名前空間である nto-payments
名前空間で作成され、ID が 1234 の API に関連付けられます。
NAMESPACE NAME ADAPTER API ID SERVICE NAME STATUS
nto-payments customers anypoint-service-mesh-adapter 1234 customers Ready
好みに合わせて Anypoint Platform または Anypoint Service Mesh を使用して API をサービスにバインドできます。
Anypoint Platform を使用して作成された API をバインドする: Anypoint Platform を使用して API を作成した場合、この手順に従います。
Anypoint Service Mesh を使用して作成された API をバインドする: Anypoint Service Mesh を使用して API を作成した場合、この手順に従います。
サービスをバインドする前に、API Manager の [API Administration (API 管理)] タブから API ID を取得します。
サービスを API とバインドするには、次の手順を実行します。
[Anypoint Platform] > [API administration (API 管理)] に移動して、API バージョン名を展開してインスタンスを表示します。
インスタンス名をクリックして表示された API ID をコピーします。 この API ID を、簡単にアクセスできる場所に保存します。
1 | API 名と API インスタンスバージョン。 |
2 | API ID。 |
API にバインドするサービスの名前を Kubernetes から取得します。
kubectl get svc -n <namespace>
マイクロサービスポートが Istio の要件に基づいて命名されていることを確認します。
Anypoint Platform を使用して API を作成した場合は、yaml
ファイルで spec.parameters.apiId
パラメーターを使用します。
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
name: _binding name_ # example: orders-api-binding
namespace: _namespace name_ # example: default
labels:
service-mesh.mulesoft.com/kind: adapter-binding
spec:
instanceRef:
name: _Kubernetes adapter resource name_ # example: bookinfo-service-mesh-adapter
parameters:
apiId: _api ID_ # example: 15722113
service: _Kubernetes service resource name_ # example: orders-service
バインドは数秒以内にアクティブ化され、API が正常にプロキシに登録されます。
次のコマンドを使用してバインド状況を確認します。
asmctl adapter binding list
API をバインドすると、API Manager の API は [Active (アクティブ)] とマークされます。これで API を保護するためのポリシーを適用する準備ができました。
1 | API 名と API インスタンスバージョン。 |
2 | サービスの状況。 |
Anypoint Service Mesh の Autocreate を使用して作成された API をバインドする手順は、次のとおりです。
バインド定義ファイルを作成し、次のように、.yaml
ファイル拡張子を付けて保存します。
bind-api.yaml
:
Anypoint Service Mesh を使用して API を作成した場合は、spec.instanceRef.name
を使用します。
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
# name is used as resulting secret name if no secretName is specified under the spec section.
name: _binding name_ # example: orders-api-binding
namespace: _namespace name_ # example: default
labels:
service-mesh.mulesoft.com/kind: api-binding
spec:
instanceRef:
name: _Kubernetes API resource name_ # example: orders-api
parameters:
adapter: _Kubernetes adapter resource name_ # example: bookinfo-service-mesh-adapter
service: _Kubernetes service resource name_ # example: orders-service
次のコマンドを使用して CRD を適用します。
kubectl apply -f bind-api.yaml
バインドの状況を確認します。
asmctl api binding list
Istio サイドカーの状況を確認します。
asmctl management check sidecar --namespace=namespace
API Manager で API が Active
とマークされ、ポリシーを適用して API を保護できるようになります。