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

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

最終更新日:Nov 14, 2025

ALB Ingress コントローラーは、外部トラフィックをクラスター内のサービスにルーティングする Kubernetes クラスター用の Ingress コントローラーです。ALB Ingress を使用してサービスにアクセスすると、ALB Ingress コントローラーは関連付けられた Endpoint リソースの変更を監視します。その後、バックエンドノードのステータスを対応するバックエンドサーバーグループにリアルタイムで同期し、変更を Application Load Balancer (ALB) インスタンスに適用します。このトピックでは、ALB Ingress の使用時に発生する可能性のある問題を診断および解決する方法について説明します。

仕組み

ALB Ingress を介してサービスにアクセスすると、ALB Ingress コントローラーはさまざまなリソースの変更を監視し、その変更を関連付けられた ALB インスタンスに同期します。さまざまな制限や構成エラーが原因で、同期が失敗することがあります。次の図は、さまざまなリソース間の論理的な関係と同期プロセスを示しています。

ステップ 1: 異常イベントの表示

  • コンソールの使用: 左側のナビゲーションウィンドウで、[ネットワーク] > [Ingress] を選択します。ターゲットの名前空間を選択し、ターゲット Ingress の名前をクリックして詳細ページを開き、イベント タブをクリックします。

  • kubectl の使用:

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

    期待される出力:

    ...
    Events:
      Type     Reason                  Age                     From     Message
      ----     ------                  ----                    ----     -------
      Warning  FailedBuildModel        2m28s (x10 over 6m43s)  ingress  listener is not exist in alb, port: 443, protocol: HTTPS
      Normal   Sync                    19s (x32 over 11d)      ingress  Scheduled for sync
      Normal   SuccessfullyReconciled  4s (x20 over 11d)       ingress  Successfully reconciled

説明 列または Message フィールドで、Ingress のイベント情報を見つけることができます。

ステップ 2: 異常イベントの分析と解決

次の表は、一般的な異常イベント、その原因、および解決策について説明しています。

ALB Ingress コントローラーの古いバージョンと新機能との間の非互換性によって引き起こされる問題を回避するため、トラブルシューティングを開始する前に、コンポーネントを最新バージョンにアップグレードすることをお勧めします。詳細については、「リリースノート」およびコンポーネントをアップグレードする方法をご参照ください。

エラーメッセージ (Message)

原因

解決策

listener does not exist in alb, port: 80, protocol: HTTP

ALB Ingress コントローラー V2.11.0 以降では、Ingress のリスナーは関連付けられるだけで、自動的には作成されません。このエラーは、AlbConfig で対応するリスナーを作成せずに Ingress でリスナーを使用した場合に発生します。

ALB Ingress コントローラー V2.11.0 以降を使用する場合、AlbConfig で Ingress リソースに必要なリスナーを作成する必要があります。詳細については、「AlbConfig を使用して ALB リスナーを構成する」をご参照ください。

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

ALB Ingress コントローラー V2.11.0 以降では、このエラーは、まだ Ingress に関連付けられている AlbConfig からリスナーを削除した場合に発生します。エラーメッセージには、見つからないリスナーと関連付けられている Ingress の数が表示されます。

リスナーを削除するには、まずそれに関連付けられているすべての Ingress を削除する必要があります。

重要

誤ってリスナーを削除した場合は、再度追加してください。

no certificate found for host

TLS が有効になっており、ドメイン名に対して証明書の自動検出機能が使用されていますが、Certificate Management Service でそのドメイン名に使用できる証明書が見つかりません。

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

転送ルールに無効なパスパラメーターが含まれています。

  • ALB Ingress で rewrite アノテーションを使用する場合は、pathType フィールドの値を Prefix に変更します。

  • ALB Ingress で rewrite アノテーションを使用しない場合、path フィールドに特殊文字が含まれている可能性があります。

    説明

    正規表現以外のパスは / で始まる必要があり、大文字と小文字の英字、数字、および次の特殊文字を含めることができます: ドル記号 ($)、プラス記号 (+)、スラッシュ (/)、アンパサンド (&)、チルダ (~)、アットマーク (@)、アンダースコア (_)、ハイフン (-)、ピリオド (.)、およびコロン (:)。アスタリスク (*) と疑問符 (?) はワイルドカードとしても使用できます。

The param ServerGroupName is illegal

ALB バックエンドサーバーグループの名前が無効なフォーマットです。

サーバーグループの名前が正しいフォーマットであることを確認してください。

サーバーグループ名は namespace+ServiceName+port フォーマットで生成されます。名前は 2〜128 文字の長さで、文字または漢字で始まり、数字、ピリオド (.)、アンダースコア (_)、およびハイフン (-) を含めることができます。

The specified resource sgp-vz2fb219vv792flx3u is in use

ACK が管理する ALB バックエンドサーバーグループが、別の ALB インスタンスによって参照されています。

Application Load Balancer (ALB) コンソールにログオンします。左側のナビゲーションウィンドウで、[Application Load Balancer] > [サーバーグループ] を選択します。[サーバーグループ] ページで、ターゲットのバックエンドサーバーグループを見つけ、必要に応じて ALB インスタンスの関連付けを解除します。

Message: Invalid parameter. Check the parameter input.

このエラーは、AlbConfig で証明書を指定する際に証明書 ID が誤って構成されている場合によく発生します。

証明書 ID が数値 ID ではなくリソース ID であることを確認してください。CertIdentifier で指定された証明書 ID を使用する必要があります。

Message: Failed to create SSL Certificate with name default-https-secret-1-b585e6 ({namespace}-{name}-{identity}). Error: The certificate has expired.

Secret 証明書の有効期限が切れています。エラーメッセージの証明書名は、{namespace}-{name}-{identity} の 3 つの部分で構成されています。

  • {namespace}: 問題のある Secret が存在する名前空間。例: default

  • {name}: 問題のある Secret の名前。例: https-secret-1

  • {identity}: 問題のある Secret のコンテンツのハッシュ値。例: b585e6

  1. Ingress の secretName フィールドに構成されている期限切れの証明書を更新します。新しい証明書は、現在の日付から少なくとも 1 日間有効である必要があります。

  2. Ingress から secretName 構成を削除し、証明書の自動検出を使用します。

詳細については、「暗号化通信のために HTTPS 証明書を構成する」をご参照ください。

failed to createSSLCertificateWithName: XXX

ErrorCode: NameRepeat

Message: The name is already used. Please enter another name.

Ingress は Secret 証明書を使用します。証明書の有効期限が切れた後、AlbConfig を使用して新しい証明書をアップロードすると、期限切れの証明書の名前が再利用されます。これにより、SSL 証明書名が重複します。

invalid server group Cookie:

  • Cookie が構成されていません

    セッション維持が Cookie の書き換え (sticky-session-type: "Server") に構成されている場合、Cookie の値を指定しないとこのエラーが発生します。次のコードは、誤った構成の例です:

    ...
    alb.ingress.kubernetes.io/sticky-session: "true"
    alb.ingress.kubernetes.io/sticky-session-type: "Server"   
    alb.ingress.kubernetes.io/cookie-timeout: "1800"
    alb.ingress.kubernetes.io/cookie: "" # 空にすることはできません

Cookie の書き換えメソッドを使用する場合は、Cookie の値を構成する必要があります:

...
alb.ingress.kubernetes.io/cookie: "test" 

パラメーターの詳細については、「アノテーションを使用してセッション維持を実装する」をご参照ください。

  • ALB Ingress コントローラーのバージョンが古すぎます。

    V2.15.0-aliyun.1 より前の ALB Ingress コントローラーのバージョンでは、サーバーグループのセッション維持はカスタム Cookie をサポートしていません。

ALB Ingress コントローラーコンポーネントをアップグレードする

The quota of alb_quota_server_added_num is exceeded for resource eni-xxxx, usage 202/200

ALB の alb_quota_server_added_num クォータ制限に達しました。これは、バックエンドサーバー (IP アドレス) を ALB バックエンドサーバーグループに追加できる最大回数です。

クォータセンターに移動して、サーバーグループのクォータを増やす

よくある質問

ALB Ingress への変更が有効にならないが、異常イベントが報告されない場合はどうすればよいですか?

AlbConfig に関連する調整イベントが実行されない場合、または変更イベントが正常に処理されない場合、問題は IngressClass と AlbConfig の間の不正なバインディングが原因である可能性があります。詳細については、「IngressClass を使用して AlbConfig を Ingress に関連付ける」をご参照ください。IngressClass で指定された spec.parameters パラメーターが正しい AlbConfig リソースオブジェクト名に関連付けられていることを確認してください。