Flex Gateway新着情報
Governance新着情報
Monitoring API Managerアダプターをプロビジョニングしたら、サービスをバインドする API を作成する必要があります。無効なログイン情報を指定すると、API のプロビジョニング時にエラーが発生することがあります。以下の各セクションでは、API のプロビジョニングの問題の考えられる原因と解決法を説明します。
シークレットを使用して API を作成する場合は、シークレットを正しく参照していることを確認する必要があります。
無効なログイン情報を指定すると、次のエラーが発生します。
この問題を診断する手順は、次のとおりです。
kubectl describe serviceinstance api_instance_name
コマンドを使用して、サービスインスタンスの状態を確認します。
+
$ kubectl describe serviceinstance inventory-resource-api
Status
項目に、エラーの詳細が表示されます。
+ image::error-with-params-error-display-api-prov-service-mesh.png[API のプロビジョニング時のパラメーターエラー]
次の例では、stringData セクションのクライアントシークレットセグメントの最後に余分なカンマがあるためにエラーとなっています。
apiVersion: v1 kind: Secret metadata: name: my-credentials namespace: nto-payment type: Opaque stringData: user-pass: '{ "clientId": "<id>", "clientSecret": "<secret>", }'
text
この問題を解決する手順は、次のとおりです。
API を削除します。
ログイン情報エラーを解決します。
API を作成し直します。
550KB より大きい仕様ファイルで API をプロビジョニングしようとすると、プロビジョニング動作や Service Mesh のサービスで問題が発生することがあります。
大きなファイルを使用すると、Service Catalog の制限によってポッドが再起動することがあります。
E0605 21:13:58.080886 1 controller_instance.go:1968] ServiceInstance "default/flights-api-v1" v8611662: Failed to update status: rpc error: code = ResourceExhausted desc = trying to send message larger than max (2554151 vs. 2097152) I0605 21:13:58.080907 1 controller.go:408] Dropping ServiceInstance "default/flights-api-v1" out of the queue: rpc error: code = ResourceExhausted desc = trying to send message larger than max (2554151 vs. 2097152)
text
この問題を診断する手順は、次のとおりです。
Service Catalog の状況を確認します。
$ kubectl get pods -n service-mesh
Running
以外の状況が表示されている場合は、リソース不足が原因で Service Catalog ポッドがエラーになっている可能性があります。
ポッドが正常に動作している場合は、rpc
エラーのログを確認します。
$ kubectl logs -f deployment/service-mesh-catalog-controller-manager -n service-mesh --tail=250 | grep "rpc error"
この問題を解決する手順は、次のとおりです。
Service Catalog ポッドがエラーになる場合は、リソースの上限を増やします。
$ kubectl -n service-mesh set resources deployment service-mesh-catalog-controller-manager --limits=memory=64Mi
$ kubectl -n service-mesh set resources deployment service-mesh-catalog-webhook --limits=memory=64Mi
サービスインスタンスを削除します。
Anypoint Platform から API を作成します。
Anypoint Service Mesh を使用して API をプロビジョニングする場合、アセット (Exchange 内) と API インスタンス (API Manager 内) が Anypoint Platform で正常に作成されない場合があります。
このエラーは以下の試行時に発生することがあります。
7 日間を超えてから削除されたアセットの Exchange での再作成
無効な値での API のプロビジョニング
この問題を診断する手順は、次のとおりです。
$ asmctl api list
コマンドを実行します。
API の状況は ProvisionCallFailed
と表示されます。
asmctl api logs --name=<replace_with_api_name> --namespace=<replace_with_namespace>
コマンドを実行します。
無効な値で API をプロビジョニング使用とした場合の出力例を示します。
DATE MESSAGE 2020-05-29T17:12:36Z Error provisioning ServiceInstance of ClusterServiceClass (K8S: "1c3b2100-5cdc-49ea-9423-dd7170e674b4" ExternalName: "anypoint-platform-api-instance") at ClusterServiceBroker "service-mesh-incluster-broker": Status: 400; ErrorMessage: Bad Request; Description: version: should match pattern "^\d+\.\d+\.\d+(-.+)?$" (ID: 49724b5d-7fad-4cc3-980e-695c2e47b383); ResponseError: <nil>
text
情報が何も表示されない場合は、kubectl describe serviceinstances <replace_with_api_name> -n <replace_with_namespace>
コマンドを実行します。
リソースの status
セクションには、問題を説明したエラーメッセージが表示されます。
Error provisioning ServiceInstance of ClusterServiceClass (K8S: "1c3b2100-5cdc-49ea-9423-dd7170e674b4" ExternalName: "anypoint-platform-api-instance") at ClusterServiceBroker "service-mesh-incluster-broker": Status: 410; ErrorMessage: Gone; Description: Error from Exchange: There is no asset matching given parameters. (ID: 79d0cc7f-9969-477b-816d-c822916c0290); ResponseError: <nil>' reason: ProvisionCallFailed
text
このケースでは、7 日間を超えてから削除されたアセットを Exchange で作成し直そうとしたことがエラーの原因です。Exchange ではこのような操作は許可されませんので、新しい assetId
を使用して新しいアセットを作成してください。
この問題を解決する手順は、次のとおりです。
API を削除します。
asmctl api delete --name=<replace_with_api_name> --namespace=<replace_with_namespace>
新しいアセットを使用することでエラーを修復します。
API を作成し直します。