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 に関連付けます。 2 つのバックエンドサーバーグループ vgroup1 と vgroup2 が rule1 で指定されています。 1 つのバックエンドサーバーグループ vtgroup2 が rule2 で指定されています。
ALB Ingress コントローラーは、サービスとエンドポイントの変更をリッスンします。 変更が検出されると、ALB Ingress コントローラーは、対応する ALB インスタンスのバックエンドサーバーグループへの変更をリアルタイムで同期します。
上記の同期は、特定の制限により失敗する場合があります。 この場合、エラーイベントが記録されます。 次の手順では、エラーを表示、分析、および解決する方法について説明します。
手順 1:エラーイベントを表示する
ALB Ingress コントローラーを最新バージョンに更新します。
イベントは継続的に更新されます。 ALB Ingress コントローラーを診断する前に、最新バージョンに更新することをお勧めします。
次のコマンドを実行して、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 以降では、AlbConfigs で使用するリスナーを構成する必要があります。 |
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 | 転送ルールを作成または変更するときに、無効なパスが指定されています。 |
|
The param of ServerGroupName is illegal | ALB インスタンスに関連付けられているバックエンドサーバーグループの名前が無効です。 | 有効な形式で名前を指定します。 名前は、 |
The specified resource sgp-vz2fb219vv792flx3u is in use | バックエンドサーバーグループが別の ALB インスタンスに追加されています。 | ALB コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 [サーバーグループ] ページで、バックエンドサーバーグループを見つけて、他の ALB インスタンスから削除します。 |
Message: Invalid value. Set the value in a valid format. | AlbConfig で指定した証明書 ID が無効です。 | 指定した ID がリソース ID か数値 ID かを確認します。 リソース ID または数値 ID を、CertIdentifier パラメーターで指定された証明書 ID に置き換えます。 |