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

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

最終更新日:Dec 10, 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>

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

    • 同期予定: イベントが開始されます。

    • 正常に調整されました: イベントが終了します。

ステップ2: エラーの分析と解決

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

エラーメッセージ

原因

解決策

リスナーは存在しません、ポート: 80、プロトコル: HTTP

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

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

リスナーが見つかりません (80/HTTP) 、ingresses 1

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

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

重要

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

none certificate found for host

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

Rules.1.RuleConditionsのパラメーター。2.PathConfig.Values.1は違法です

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

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

  • ALB Ingressで書き換えルールが設定されていない場合、pathパラメーターで特殊文字を指定できます。

    説明

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

ServerGroupNameのパラメーターは違法です

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

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

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

指定されたリソースsgp-vz2fb219vv792flx3uが使用中

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

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

メッセージ: 無効な値。 有効な形式で値を設定します。

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

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