すべてのプロダクト
Search
ドキュメントセンター

:ALB Ingress コントローラーのトラブルシューティング

最終更新日:Dec 27, 2024

Application Load Balancer (ALB) Ingress コントローラーは、Kubernetes クラスター内のアプリケーションに外部リクエストを転送するために使用されます。ALB Ingress コントローラーは、ALB Ingress に関連付けられているサービスとエンドポイントの変更をリッスンします。変更が検出されると、ALB Ingress コントローラーは、対応する ALB インスタンスのバックエンドサーバーグループへの変更をリアルタイムで同期します。変更は ALB コンソールにも同期されます。このトピックでは、ALB Ingress コントローラーのエラーを診断する方法と解決策について説明します。

リソースの同期

次の図は、ALB Ingress コントローラーがリソースを同期する方法を示しています。

  • ALB Ingress コントローラーは、設定した AlbConfig に基づいて、ALB インスタンスと 2 つのリスナー listener1 と listener2 を作成します。

  • ALB Ingress コントローラーは、設定した Ingress に基づいて 2 つの転送ルール rule1 と rule2 を作成し、rule1 と rule2 を listener2 に関連付けます。rule1 では 2 つのバックエンドサーバーグループ vgroup1 と vgroup2 が指定されています。rule2 では 1 つのバックエンドサーバーグループ vtgroup2 が指定されています。

  • ALB Ingress コントローラーは、サービスとエンドポイントの変更をリッスンします。変更が検出されると、ALB Ingress コントローラーは、対応する ALB インスタンスのバックエンドサーバーグループへの変更をリアルタイムで同期します。

上記の同期は、特定の制限により失敗する場合があります。この場合、エラーイベントが記録されます。次の手順では、エラーを表示、分析、および解決する方法について説明します。

手順 1: エラーイベントを表示する

  1. ALB Ingress コントローラーを最新バージョンに更新します。

    イベントは継続的に更新されます。ALB Ingress コントローラーを診断する前に、最新バージョンに更新することをお勧めします。詳細については、ALB Ingress コントローラーの更新を参照してください。

  2. 次のコマンドを実行して、Ingress エラーイベントをクエリします。

    kubectl -n <your-namespace> describe ingress <your-ingress-name>

    出力の Events セクションに、Ingress エラーイベントが表示されます。

    • Scheduled for sync: イベントが開始されます。

    • Successfully reconciled: イベントが終了します。

手順 2: エラーを分析して解決する

次の表に、一般的なエラーイベントの原因と解決策を示します。

エラーメッセージ

原因

解決策

listener is not exist, port: 80, protocol: HTTP

ALB Ingress コントローラー 2.11.0 以降では、リスナーを Ingress に関連付けることはできますが、リスナーを作成することはできません。Ingress に関連付けるリスナーが AlbConfig で設定されていない場合、エラーイベントが生成されます。

ALB Ingress コントローラー 2.11.0 以降では、AlbConfig で使用するリスナーを設定する必要があります。

listener not found for (80/HTTP), with ingresses 1

ALB Ingress コントローラー 2.11.0 以降では、AlbConfig からリスナーを削除したが、リスナーが Ingress に関連付けられている場合、エラーイベントが生成されます。イベントには、リスナーと、リスナーに関連付けられている Ingress の数に関する情報が含まれています。

リスナーを削除する場合は、まずすべての Ingress をリスナーから関連付けを解除する必要があります。

重要

誤ってリスナーを削除した場合は、リスナーを再度追加できます。

none certificate found for host

TLS と自動証明書の検出が有効になっていますが、証明書管理サービスコンソールでドメイン名に関連付けられている証明書がありません。

The param of Rules.1.RuleConditions.2.PathConfig.Values.1 is illegal

転送ルールを作成または変更するときに、無効なパスが指定されました。

  • ALB Ingress で書き換えルールが設定されている場合は、pathTypePrefix に設定する必要があります。

  • ALB Ingress で書き換えルールが設定されていない場合は、path パラメーターに特殊文字が指定されている可能性があります。

    説明

    path パラメーターには正規表現を指定できます。それ以外の場合は、指定するパスはスラッシュ (/) で始まる必要があります。パスには、文字、数字、および次の特殊文字を含めることができます: $ + / & ~ @ _ - . : * ?。アスタリスク (*) と疑問符 (?) はワイルドカード文字として使用できます。

The param of ServerGroupName is illegal

ALB インスタンスに関連付けられているバックエンドサーバーグループの名前が無効です。

有効な形式で名前を指定します。

名前は、Namespace + サービス名 + ポート番号 の形式である必要があります。名前は 2 ~ 128 文字で、文字、数字、ピリオド (.)、アンダースコア (_)、ハイフン (-) を使用できます。

The specified resource sgp-vz2fb219vv792flx3u is in use

バックエンドサーバーグループが別の ALB インスタンスに追加されています。

ALB コンソールにログオンします。左側のナビゲーションペインで、ALB > > サーバーグループ を選択します。サーバーグループ ページで、バックエンドサーバーグループを見つけて、他の ALB インスタンスから削除します。

Message: Invalid value. Set the value in a valid format.

AlbConfig で指定した証明書 ID が無効です。

指定した ID がリソース ID か数値 ID かを確認します。リソース ID または数値 ID を、CertIdentifier パラメーターで指定された証明書 ID に置き換えます。