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

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

最終更新日:May 09, 2026

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

仕組み

ALB イングレス経由でサービスにアクセスする際、ALB Ingress Controller はさまざまなリソースの変更をモニターし、それらの変更を関連付けられた ALB インスタンスに同期します。このプロセスは、さまざまな制限や構成エラーにより失敗する可能性があります。次の図は、各リソース間の論理的な関係と同期プロセスを示しています。

手順 1: 異常なイベントを確認する

  • コンソールを使用する場合:左側のナビゲーションウィンドウで、ネットワーク > 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 フィールドで、イングレスに関連するイベント情報を確認します。

手順 2:異常イベントの分析と解決

以下の表は、一般的な異常イベント、その原因、および解決策を示しています。

新機能と互換性のない古いバージョンの ALB Ingress Controller コンポーネントによって引き起こされる異常イベントを回避するため、診断を実行する前に、リリースノート を参照し、コンポーネントを目的のバージョンにスペックアップしてください。

メッセージ

原因

解決策

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

ALB Ingress Controller v2.11.0 以降では、イングレスのリスナーは自動作成されず、関連付けのみが行われます。このエラーは、対応する AlbConfig で事前にリスナーを作成せずにイングレスでリスナーを使用した場合に発生します。

ALB Ingress Controller v2.11.0 以降では、イングレスリソースに必要なリスナーを AlbConfig で作成してください。詳細については、「AlbConfig を使用して ALB リスナーを構成する」をご参照ください。

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

ALB Ingress Controller v2.11.0 以降では、このエラーは、まだイングレスに関連付けられている AlbConfig からリスナーを削除した場合に発生します。エラーメッセージには、不足しているリスナーと関連付けられているイングレスの数が表示されます。

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

重要

誤ってリスナーを削除した場合は、再度追加する必要があります。

none certificate found for host

TLS が有効になっており、ドメインに対して証明書の自動検出がアクティブですが、Certificate Management Service にそのドメインに一致する証明書が存在しません。

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

ルーティングルールに無効なパスパラメーターが含まれています。

  • イングレスで Rewrite アノテーションを使用している場合、pathType フィールドの値を Prefix に変更してください。

  • イングレスで Rewrite アノテーションを使用していない場合、path フィールドに無効な文字が含まれている可能性があります。

    説明

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

The param of ServerGroupName is illegal

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

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

コントローラーは、namespace+ServiceName+port の形式でサーバーグループ名を生成します。名前は 2~128 文字で、英字または漢字で始まり、数字、ピリオド (.)、アンダースコア (_)、ハイフン (-) を含むことができます。

The specified resource sgp-vz2fb219vv792flx3u is in use

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

Application Load Balancer コンソールにログインします。左側のナビゲーションウィンドウで、ALB > サーバーグループ を選択します。サーバーグループ ページで、対象のバックエンドサーバーグループを見つけ、必要に応じて 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 .

イングレスで使用されているシークレット証明書の有効期限が切れています。エラーメッセージ中の証明書名は、{namespace}-{name}-{identity} の 3 つの部分で構成されています。

  • {namespace}:影響を受ける Secret が存在する名前空間。例:default

  • {name}:影響を受ける Secret の名前。例:https-secret-1

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

  • このシークレット証明書を引き続き使用する場合は、エラーメッセージ内の {namespace}-{name} を基に期限切れの Secret を特定し、有効な証明書でコンテンツを更新してください。新しい証明書の有効期限は、現在日時から少なくとも 1 日以上先である必要があります。

  • このシークレット証明書が不要になった場合は、対応するイングレスリソースを編集し、tls フィールドから期限切れの Secret を参照する構成を削除してください。

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

failed to createSSLCertificateWithName: XXX

ErrorCode: NameRepeat

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

イングレスで使用されているシークレット証明書の有効期限が切れています。新しい証明書をアップロードする際に期限切れの証明書と同じ名前を使用すると、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: "" # 空にすることは許可されていません。

Cookie 書き換え方式を使用する場合は、Cookie 値を必ず構成してください。

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

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

  • ALB Ingress Controller のバージョンが古すぎます。

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

ALB Ingress Controller コンポーネントをスペックアップしてください。

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 イングレスの変更が反映されない

IngressClass と AlbConfig 間のバインディングが正しくないために、コントローラーが AlbConfig の調整イベントをトリガーしなかったり、変更イベントを処理できなかったりすることが原因の可能性があります。詳細については、「IngressClass を使用して AlbConfig をイングレスに関連付ける」をご参照のうえ、IngressClass の spec.parameters パラメーターが正しい AlbConfig リソースオブジェクト名を指していることを確認してください。