Flex Gateway新着情報
Governance新着情報
Monitoring API Managerアダプターをプロビジョニングすると、リソースが不十分であったり、イメージにアクセスできなかったりといった問題が発生する場合があります。以下の各セクションでは、デプロイメントとサービスの問題の考えられる原因と解決法を説明します。
アダプターをプロビジョニングしようとしても、アダプターポッドが起動できません。
アダプターポッドに十分な CPU スペースが割り当てられていないと、アダプターはエラーとなります。
この問題を診断する手順は、次のとおりです。
アダプターの状況を確認します。
$ 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.
text
ノードの状況でリソースの割り当てを確認します。
$ kubectl describe nodes
割り当てられているリソースが表示されます。
この問題を解決する手順は、次のとおりです。
既存のアダプターを削除します。
必要に応じて Kubernetes クラスターに追加のリソースを割り当てます。
アダプターを再びプロビジョニングします。
アダプターをプロビジョニングした後、アダプターがエラーで起動できません。
アダプターで無効なログイン情報が指定されているか、または registry-credentials-rotator
ポッドで問題が発生しています。
この問題を診断するには、影響を受けているアダプターポッドの状況を確認します。
$ 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}}'
アダプターをリストしようとすると、Failed
の状況が返されることがあります。
必要なエンタイトルメントを備えた有効な Mule Runtime Engine (Mule) ライセンスを指定しないと、Mule アダプターは起動しません。
この問題を診断する手順は、次のとおりです。
アダプターの状況を確認します。
$ asmctl adapter list
アダプターの状況が Failed
である場合は、(grpcmule-<namespace>) アダプターポッドの状況を確認します。
$ kubectl -n service-mesh get pods
この場合、ポッドの状況は CrashLoopBackOff
として表示されることがあります。
この問題を解決するには、有効なライセンスでアダプターを更新します。
$ asmctl management config license --license=/path/to/license.lic
カタログコンテンツが正しく初期化されていなかったために、アダプターをプロビジョニングが失敗することがあります。
アダプターのプロビジョニング、バインドの作成、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>
この問題を解決するには、次のコマンドでカタログを強制的に初期化します。
$ kubectl -n service-mesh patch clusterservicebrokers/service-mesh-incluster-broker --type=json -p='[{"op": "replace", "path": "/spec/relistRequests","value":1}]'
作成してあるアダプターを削除しようとすると、問題が発生することがあります。
削除しようとしているアダプターにサービスバインドが関連付けられている場合、そのアダプターは削除できません。
この問題を診断するには、アダプターの状況を確認します。
$ asmctl adapter list
アダプターまたはサービスインスタンスにバインドが関連付けられている場合、状況は DeprovisionBlockedByExistingCredentials
と表示されます。
この問題を解決するには、アダプターに関連付けられているすべてのバインドを削除します。すべてのバインドを正常に削除できたら、アダプターを削除します。