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: エラーイベントの表示
ALB Ingressコントローラーを最新バージョンに更新します。
イベントは継続的に更新されます。 ALB Ingressコントローラーを診断する前に、最新バージョンに更新することを推奨します。 詳細については、「ALB Ingressコントローラーの更新」をご参照ください。
次のコマンドを実行して、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は違法です | 転送ルールを作成または変更するときに、無効なパスが指定されています。 |
|
ServerGroupNameのパラメーターは違法です | ALBインスタンスに関連付けられているバックエンドサーバーグループの名前が無効です。 | 有効な形式で名前を指定します。 名前は、 |
指定されたリソースsgp-vz2fb219vv792flx3uが使用中 | バックエンドサーバーグループが別のALBインスタンスに追加されます。 | ALB コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 [サーバーグループ] ページで、バックエンドサーバーグループを見つけ、他のALBインスタンスから削除します。 |
メッセージ: 無効な値。 有効な形式で値を設定します。 | AlbConfigで指定した証明書IDが無効です。 | 指定したIDがリソースIDであるか数値IDであるかを確認します。 リソースIDまたは数値IDを、CertIdentifierパラメーターで指定された証明書IDに置き換えます。 |