この記事では、Microsoft Azure Kubernetes Service (AKS) の "引数リストが長すぎます" というエラー メッセージによって発生するアプリケーションエラーを解決するためのトラブルシューティング戦略について説明します。
現象
kubeletが実行可能ファイルを実行しようとしたときにアプリケーションが失敗し、次の出力のようなエラー メッセージが表示されます。
standard_init_linux.go:228: exec ユーザー プロセスの原因: 引数リストが長すぎます
原因 1: 実行可能ファイルに指定された引数リストが長すぎます
アプリケーションの実行可能ファイルに提供される引数が長すぎて処理できません。
解決策: 引数リストを短くする
実行可能ファイルに指定する冗長または不要な引数を削除します。
原因 2: 実行可能ファイルに提供される環境変数のセットが大きすぎます
1 つの名前空間にデプロイされているサービスが多すぎると、環境変数リストが大きくなりすぎる可能性があり、実行可能ファイルを実行しようとすると kubelet によってエラー メッセージが生成されます。 このエラーが発生するのは、kubelet によって、アクティブなサービスごとにホストとポートを記録する環境変数が追加されるためです。これにより、 サービスはこの情報を使用して他のアクティブなサービスを検索できます。
解決策 1: アクティブなサービスの数を減らす
アクティブなサービスの合計数を減らして、kubelet が追加する環境変数全体の数を減らすことができます。
解決策 2: サービス ホストとポートの環境変数が追加されないように kubelet を再構成する
PodSpec コア API 内でenableServiceLinks フィールドをfalseに設定します。 この変更により kubelet の動作が再構成され、アクティブなサービスごとにホストとポートが環境変数として自動的に追加されることはありません。
警告
サービスがこれらの環境変数に依存して他のサービスを検索する場合、このフィールドの変更によってサービスが失敗します。 このシナリオを回避するには、 CoreDNSを使用して、環境変数の代わりにサービス検出に DNS を使用します。
サードパーティの情報に関する免責事項
この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。
お問い合わせはこちらから
ご質問がある場合は、 Azure コミュニティサポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。