Flex Gateway新着情報
Governance新着情報
Monitoring API Managerアダプターをプロビジョニングすると、リソースが不十分であったり、イメージにアクセスできなかったりといった問題が発生する場合があります。以下の各セクションでは、デプロイメントとサービスの問題の考えられる原因と解決法を説明します。
アダプターをプロビジョニングしようとしても、アダプターポッドが起動できません。
この問題を診断する手順は、次のとおりです。
アダプターの状況を確認します。
$ asmctl adapter list
状況が表示されるまでには数分かかります。
アダプターの状況が Failed
である場合は、次のコマンドを実行します。
$ kubectl -n service-mesh get pods
アダプターポッドの状況を確認します。
$ kubectl -n service-mesh get pods | grep grpcmule
状況が「Pending (保留中)」であれば、ポッドの状態を確認します。
$ kubectl -n service-mesh describe pods -l namespace=namespace
grpcmule-namespace
ポッドが表示されない場合は、アダプターを作成した直後に (プロビジョニング中でエラーとなる前に) 同じコマンドを実行します。
$ kubectl -n service-mesh describe pods -l namespace=namespace
次のいずれかのアクションを実行します。
[Events (イベント)] セクションに「Insufficient CPU (CPU が不十分です)」や他のリソース情報が表示されていないか確認します。
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 46s (x5 over 3m7s) default-scheduler 0/3 nodes are available: 3 Insufficient cpu.
ノードの状況でリソースの割り当てを確認します。
$ kubectl describe nodes
割り当てられているリソースが表示されます。
この問題を診断するには、影響を受けているアダプターポッドの状況を確認します。
$ kubectl -n service-mesh get pods
ポッドの状況は ErrImagePull
または ImagePullBackOff
になります。
この問題を解決する手順は、次のとおりです。
registry-credentials-rotator ポッドが動作中であることを確認します。
$ kubectl -n service-mesh get pod -l app=service-mesh-registry-credentials-rotator
ポットのログで、クライアント ID とクライアントシークレット、エンタイトルメント、または権限の問題が発生していないことを確認します。
$ kubectl -n service-mesh logs $(kubectl -n service-mesh get pod -l app=service-mesh-registry-credentials-rotator -oname)
プルシークレットが作成されていることを確認します。
$ kubectl -n service-mesh get secret service-mesh-pull-secret
正しいプラットフォーム URL とログイン情報が指定されていることを確認します。
$ kubectl -n service-mesh get secret service-mesh-registry-credentials-rotator-env -ogo-template='CLIENT_ID:{{.data.CLIENT_ID|base64decode}} CLIENT_SECRET:{{.data.CLIENT_SECRET|base64decode}}'
$ kubectl -n service-mesh get cm service-mesh-registry-credentials-rotator-env -ogo-template='PLATFORM_URI:{{.data.PLATFORM_URI}}'
カタログコンテンツが正しく初期化されていなかったために、アダプターをプロビジョニングが失敗することがあります。
アダプターのプロビジョニング、バインドの作成、API の作成には、Anypoint Service Mesh カタログコンポーネントが必要です。カタログが正しく初期化されていないと、アダプターはエラーとなります。
この問題を診断する手順は、次のとおりです。
アダプターのログを確認します。
$ asmctl adapter logs --namespace=adapter_namespace --name=adapter_name
次のような出力が表示されます。
2019-11-26T20:46:35Z Error provisioning ServiceInstance of ClusterServiceClass (K8S: "4f6e6cf6-ffdd-425f-a2c7-3c9258ad246a" ExternalName: "anypoint-service-mesh-adapter") at ClusterServiceBroker "service-mesh-incluster-broker": Status: 500; ErrorMessage: <nil>; Description: Catalog content init failed; ResponseError: <nil>