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>
出力の
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 | 転送ルールを作成または変更するときに、無効なパスが指定されました。 |
|
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 に置き換えます。 |