インストールの問題のトラブルシューティング

Anypoint Service Mesh のインストールを開始すると、正しくないログイン情報や不十分なポッドスペースなどに起因する問題が発生することがあります。インストール時の問題の考えられる原因と、問題のトラブルシューティング方法を以下の各セクションで説明します。

ログイン情報に必要な権限やエンタイトルメントが付与されていない

Anypoint Service Mesh のインストールを開始し、インストーラーが連動関係のチェックを行っているように見えた後に ​the given credentials does not have the necessary permissions or entitlements​ エラーが表示されます。

ログイン情報に権限やエンタイトルメントが付与されていない

原因

この問題は、インストール作業で指定したログイン情報に必要な権限が付与されていない場合に発生します。

解決策

必要な権限を取得する方法については、MuleSoft カスタマーサクセス担当者にお問い合わせください。

無効なログイン情報が入力された

Anypoint Service Mesh のインストールを開始し、インストーラーが連動関係のチェックを行っているように見えた後に ​the given credentials are invalid​ エラーが表示されます。

インストール時に無効なログイン情報が入力された

原因

このエラーの考えられる原因は次のとおりです。

  • インストーラーに対して指定した、クライアント ID とクライアントシークレットのログイン情報が正しくない。

  • インストールで使用しているコントロールプレーンが正しくない。

解決策

このエラーを解決するには、次の手順を実行します。

  1. US コントロールプレーンを使用していない場合は、正しいコントロールプレーンを参照するように、正しい変数をエクスポートしてあることを確認します。たとえば、​--platformUri=https://eu1.anypoint.mulesoft.com​ というフラグを指定します。

  2. または、​SERVICEMESH_PLATFORM_URI​ 変数を設定してコントロールプレーンを変更します。

    export `SERVICEMESH_PLATFORM_URI​=https://eu1.anypoint.mulesoft.com

  3. 組織または環境の正しいログイン情報を取得します。

  4. 正しいクライアント ID とクライアントシークレットのログイン情報を使用して、インストーラーを再起動します。

ポッドの割り当てが不十分

Anypoint Service Mesh のインストールを開始すると、インストーラーがタイムアウトになります。

原因

この問題は、ポッドを起動するのに十分な量の CPU リソースやメモリリソースが割り当てられていない場合に発生します。

解決策

このエラーを解決するには、次の手順を実行します。

  1. インストーラーが実際にエラーとなる前にポッドの状況を確認します。

    kubectl get pods --all-namespaces

    名前空間にあるすべてのポッドが、状況と詳細と共に表示されます。

  2. ポッドの状況が ​Pending​ である場合は、ポッドの詳細情報を確認します。

    kubectl describe pods ​pod_name​ -n service-mesh

    コマンドが返した結果の ​Events​ セクションを見ると、ノードのスケジューリングが失敗したことが示されています。

  3. ノードの容量を超えていないことを確認します。

    kubectl describe nodes

  4. ノードの容量を増やすか、またはノードを追加します。

    ヒント:​ Amazon EKS を使用している場合、ノードの容量はインスタンス種別から計算されます。したがって、インスタンス種別を増やすことで、ポッド数も増えます。

  5. Anypoint Service Mesh インストーラーを再起動してインストールを完了します。

Service Mesh が見つからない

Anypoint Service Mesh のインストールを開始すると、インストーラーが ​Service Mesh not found​ エラーで失敗します。

原因

この問題の原因はいくつか考えられます。

診断

エラーの原因となったコマンドを特定します。

$ sh -x asmctl install

解決策

この問題を解決するには、最新バージョンのインストーラーをダウンロードして、問題が再発するかどうかを確認します。

WebHook コールエラーのためにインストールが失敗した

Anypoint Service Mesh のインストールを開始すると、インストーラーが ​failed calling webhook​ エラーで失敗します。

Error: release service-mesh failed, and has been uninstalled due to atomic being set: Internal error occurred: failed calling webhook "pilot.validation.istio.io": Post https://istio-galley.service-mesh.svc:443/admitpilot?timeout=30s: no endpoints available for service "istio-galley"
FATAL: Installing 'service-mesh' Helm Chart!!!
text

診断

この問題を診断する手順は、次のとおりです。

  1. メインノードがワーカーノードのポート 443 にアクセスできることを確認します。

  2. 前回のインストールやアンインストールからの孤立リソースが残っていないことを確認します。

    kubectl get clusterservicebrokers,clusterrole,psp,clusterrolebinding,mutatingwebhookconfigurations,validatingwebhookconfigurations -oname | awk '/(service-mesh|istio|catalog)/'

    既存の孤立リソースが表示されます。

解決策

この問題を解決する手順は、次のとおりです。

  1. メインノードがワーカーノードのポート 442 にアクセスできない場合は、プロバイダーに基づいてセキュリティグループを編集します。

  2. 孤立リソースが見つかった場合は、孤立リソースを削除してから Anypoint Service Mesh を再インストールします。リソースに応じて、次のいずれかのコマンドを実行します。

    • $ kubectl delete ns service-mesh

    • $ kubectl get clusterservicebrokers,clusterrole,psp,clusterrolebinding,mutatingwebhookconfigurations,validatingwebhookconfigurations -oname | awk '/(service-mesh|istio|catalog)/' | xargs kubectl delete

未知の原因でインストールが失敗した

未知の原因でインストールが失敗する場合があります。

インストール中にいずれかのコマンドがエラーとなったかどうかを確認するため、インストーラーをフルモードで再起動します。 ​$ sh -x asmctl install: $ sh -x asmctl install