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

Container Compute Service:サービスの問題のトラブルシューティング

最終更新日:Mar 01, 2026

このトピックでは、Alibaba Cloud Container Compute Service (ACS) の LoadBalancer サービスに関連するエラーの診断および解決方法について説明します。LoadBalancer タイプのサービス (Type=LoadBalancer) を作成すると、クラウドコントローラーマネージャー (CCM) が SLB インスタンス、リスナー、バックエンドサーバーグループを含む Server Load Balancer (SLB) リソースを自動的に作成および設定します。SLB リソースが自動的に更新される仕組みの詳細については、「LoadBalancer サービスの設定に関する考慮事項」をご参照ください。

事前準備

CCM バージョンが 1.9.3.276-g372aa98-aliyun 以降であることを確認してください。古い CCM バージョンではサービスエラーイベントが発行されないため、効果的なトラブルシューティングができません。

診断手順

次のフローチャートは、診断プロセスをまとめたものです。

Service troubleshooting process

この体系的なアプローチを使用して、障害点を特定します。Pod レイヤーから開始し、SLB レイヤーまで順に確認します。

ステップ 1:Pod とエンドポイントの確認

次のコマンドを実行して、Pod が実行中であり、エンドポイントが設定されているか確認します。

kubectl -n {your-namespace} get pods -o wide
kubectl -n {your-namespace} get endpoints {your-svc-name}

エンドポイントが存在しない場合は、Pod が実行中であるか、および Pod ラベルがサービスセレクターと一致するか確認します。

ステップ 2:SLB インスタンスに関連付けられたサービスの検索

次のコマンドを実行して、SLB IP アドレスでサービスを検索します。

kubectl get svc -A |grep -i LoadBalancer|grep ${XXX.XXX.XXX.XXX}  #XXX.XXX.XXX.XXX は SLB インスタンスの IP アドレスです。

ステップ 3:サービスエラーイベントの確認

次のコマンドを実行して、サービスエラーイベントを確認します。

kubectl -n {your-namespace} describe svc {your-svc-name}
重要

イベントが表示されない場合は、CCM バージョンが 1.9.3.276-g372aa98-aliyun 以降であることを確認してください。CCM の更新方法については、「CCM の更新」をご参照ください。

ステップ 4:必要に応じたエスカレーション

トラブルシューティング後も問題が解決しない場合は、ACS DingTalk グループに参加してテクニカルサポートを受けてください。

サービスエラーとソリューション

次の表を使用して、サービスエラーを特定し、解決します。エラーはカテゴリ別にグループ化されています。

SLB 作成エラー

エラーメッセージ説明とソリューション
The loadbalancer does not support backend servers of eni type共有リソース SLB インスタンスは、弾力性ネットワークインターフェース (ENI) をサポートしていません。ENI をバックエンドサーバーとして使用するには、パフォーマンス専有型 SLB インスタンスを作成します。サービスに次のアノテーションを追加します:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.s1.small"
重要

アノテーションが CCM バージョンの要件を満たしていることを確認してください。詳細については、「CLB インスタンスを構成するためにサービスの YAML ファイルにアノテーションを追加」をご参照ください。

Status Code: 400 Code: ShareSlbHaltSales Message: The share instance has been discontinued.以前のバージョンの CCM は共有リソース SLB インスタンスを自動的に作成していましたが、これらは現在購入できません。「CCM の更新」をご参照ください。
can not change ResourceGroupId once createdSLB インスタンスのリソースグループは、作成後に変更できません。サービスから service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id:"rg-xxxx" アノテーションを削除します。
There are no available nodes for LoadBalancerSLB インスタンスに関連付けられたバックエンドサーバーがありません。Pod がサービスに関連付けられているか、およびそれらの Pod が正常に実行されているか確認します。ソリューション:1. Pod がサービスに関連付けられていない場合は、アプリケーション Pod をサービスに関連付けます。2. 関連付けられた Pod が期待どおりに実行されていない場合は、それらをトラブルシューティングします。詳細については、「Pod のトラブルシューティング」をご参照ください。3. SLB インスタンスに関連付けられたバックエンドサーバーがないが、Pod が正常に実行されている場合は、Pod がマスターノードにデプロイされているか確認します。その場合は、Pod をワーカーノードに退避させます。それ以外の場合は、ACS DingTalk グループに参加してテクニカルサポートを受けてください。

SLB 再利用エラー

エラーメッセージ説明とソリューション
alicloud: not able to find loadbalancer named [%s] in openapi, but it's defined in service.loaderbalancer.ingress. this may happen when you removed loadbalancerid annotation / alicloud: can not find loadbalancer, but it's defined in serviceシステムがサービスを SLB インスタンスに関連付けることができません。SLB コンソールにログインし、サービスのリージョンで EXTERNAL-IP を使用して SLB インスタンスを検索します。1. SLB インスタンスが存在せず、サービスが不要になった場合は、サービスを削除します。2. SLB インスタンスが存在する場合: (a) SLB コンソールで SLB インスタンスを作成した場合は、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id アノテーションをサービスに追加します。詳細については、「Service の YAML ファイルにアノテーションを追加して CLB インスタンスを設定する」をご参照ください。(b) CCM が SLB インスタンスを自動的に作成した場合は、SLB インスタンスに kubernetes.do.not.delete ラベルが存在するかどうかを確認します。存在しない場合は、ラベルを追加します。詳細については、「CCM のバージョンが V1.9.3.10 以前の場合に SLB インスタンスの名前を変更する方法
SyncLoadBalancerFailed the loadbalancer xxx can not be reused, can not reuse loadbalancer created by kubernetes.CCM によって作成された SLB インスタンスが再利用されています。ソリューション: 1. 関連するサービスの YAML ファイルを確認し、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id アノテーション内の SLB インスタンス ID をメモします。2. サービスの状態に基づいてトラブルシューティングを行います。(a) サービスが Pending 状態の場合は、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id アノテーションの値を、CLB コンソールで手動作成した SLB インスタンスの ID に変更します。(b) サービスが Pending 状態でない場合: SLB インスタンスの IP がサービスの外部 IP と一致する場合は、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id アノテーションを削除します。SLB インスタンスの IP がサービスの外部 IP と異なる場合は、CLB コンソールにログインし、クラスターのリージョンを選択して、サービスの外部 IP で SLB インスタンスを検索し、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id アノテーションを手動で作成した SLB インスタンスの ID に変更します。一致する SLB インスタンスが見つからない場合は、アノテーションを手動で作成した SLB インスタンスの ID に変更し、サービスを再作成します。
alicloud: can not change LoadBalancer AddressType once created. delete and retrySLB インスタンスのタイプは、作成後に変更することはできません。サービスを再作成してください。
the loadbalancer lb-xxxxx can not be reused, service has been associated with ip [xxx.xxx.xxx.xxx], cannot be bound to ip [xxx.xxx.xxx.xxx]SLB インスタンスは、すでに別の SLB インスタンスに関連付けられているサービスには関連付けることができません。service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id アノテーションを変更して、別の SLB インスタンスを再利用することはできません。関連付けられた SLB インスタンスを変更するには、サービスを削除して再作成してください。
Status Code: 400 Code: RspoolVipExist Message: there are vips associating with this vServer group.vServer グループに関連付けられているリスナーは削除できません。ソリューション: 1. サービスのアノテーションに SLB インスタンス ID が含まれているかどうかを確認します。例: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: {your-slb-id}。アノテーションに SLB インスタンス ID が含まれている場合、SLB インスタンスは再利用されています。2. SLB コンソールにログインし、サービスポートを使用しているリスナーを削除します。SLB リスナーの削除方法の詳細については、「リスナーの転送ルールを管理する」をご参照ください。

ネットワークエラー

エラーメッセージ説明とソリューション
Status Code: 400 Code: NetworkConflict再利用されたイントラネット SLB インスタンスとクラスターが同じ仮想プライベートクラウド (VPC) にありません。SLB インスタンスとクラスターが同じ VPC にあることを確認してください。
Status Code: 400 Code: VSwitchAvailableIpNotExist Message: The specified VSwitch has no available ip.vSwitch に利用可能な IP アドレスが不足しています。アノテーションを使用して、同じ VPC 内の別の vSwitch を指定します:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
can not find eniid for ip x.x.x.x in vpc vpc-xxxxVPC で ENI IP アドレスが見つかりません。service.beta.kubernetes.io/backend-type: eni アノテーションがサービスに追加されているか確認します。追加されている場合は、Flannel がクラスターのネットワークプラグインとして使用されているか確認します。Flannel は ENI モードをサポートしていません。Flannel が使用されている場合は、サービスからアノテーションを削除します。

課金とクォータのエラー

エラーメッセージ説明とソリューション
ORDER.ARREARAGE Message: The account is arrearage.アカウントに支払い遅延があります。
PAY.INSUFFICIENT_BALANCE Message: Your account does not have enough balance.

アカウント残高が不足しています。

Status Code: 400 Code: ThrottlingxxxSLB で API の速度制限が発生しています。 解決策: 1. SLB コンソールのクォータ管理ページに移動し、SLB リソースクォータが十分であるかどうかを確認します。 2. 次のコマンドを実行して Service のエラーを確認し、この表を参照して解決します: kubectl -n {your-namespace} describe svc {your-svc-name}

構成エラー

エラーメッセージ説明とソリューション
The specified Port must be between 1 and 65535.targetPort フィールドは、ENI モードで STRING 型の値をサポートしていません。サービスの YAML ファイルで targetPort を INTEGER 値に設定するか、CCM を更新します。CCM の更新方法の詳細については、「CCM の更新」をご参照ください。
The operation is not allowed because the instanceChargeType of loadbalancer is PayByCLCU. / User does not have permission modify InstanceChargeType to spec.SLB インスタンスの課金方法は、従量課金から仕様別課金に変更できません。ソリューション:1. サービスから service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec アノテーションを削除します。2. service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type がサービスに追加されている場合は、値を PayByCLCU に設定します。

トラブルシューティング

サービスエラーイベントを生成しない問題のトラブルシューティングには、次の情報を使用します。

SLB インスタンスへのアクセス時の問題

問題ソリューション
SLB インスタンスがトラフィックを均等に分散しない。SLB インスタンスがトラフィックを均等に分散しない」をご参照ください。
アプリケーション更新中に SLB インスタンスにアクセスすると 503 エラーが発生する。アプリケーション更新中の 503 エラー」をご参照ください。
クラスター内から SLB インスタンスにアクセスできない。LoadBalancer サービスに関連付けられた SLB インスタンスの IP アドレスにクラスター内からアクセスできない」をご参照ください。
クラスター外から SLB インスタンスにアクセスできない。クラスター外から SLB インスタンスにアクセスできない」をご参照ください。
The plain HTTP request was sent to HTTPS port エラーが HTTPS ポートにリクエストを送信したときに発生する。バックエンド HTTPS サービスにアクセスできない」をご参照ください。

SLB 構成に関連する問題

問題ソリューション
サービスのアノテーションが有効にならない。サービスのアノテーションが有効にならない場合はどうすればよいですか?
SLB インスタンスの構成が変更される。SLB インスタンスの構成が変更されるのはなぜですか?
システムが既存の SLB インスタンスの再利用に失敗する。システムが複数のサービスに既存の SLB インスタンスを使用できないのはなぜですか?
既存の SLB インスタンスが再利用されたときにリスナーが作成されない。既存の SLB インスタンスを再利用したときにリスナーが作成されないのはなぜですか?
サービスのエンドポイントが SLB インスタンスのバックエンドサーバーと異なる。SLB インスタンスの vServer グループが更新されない場合はどうすればよいですか?

SLB 削除に関連する問題

問題ソリューション
SLB インスタンスが削除される。SLB インスタンスはいつ自動的に削除されますか?
SLB インスタンスがサービスとともに削除されない。SLB インスタンスはいつ自動的に削除されますか?

SLB インスタンスがトラフィックを均等に分散しない

[原因]

SLB インスタンスに指定されたスケジューリングアルゴリズムが不適切です。

問題

SLB インスタンスのバックエンドサーバーにトラフィックが均等に分散されません。

ソリューション

サービスに長時間接続が確立される場合は、次のアノテーションを追加して、スケジューリングアルゴリズムを Weighted Least Connections (WLC) に設定します。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler:"wlc"


アプリケーション更新中の 503 エラー

[原因]

SLB リスナーの接続ドレインが構成されていないか、Pod のグレースフルシャットダウンが構成されていません。

問題

アプリケーション更新中に SLB インスタンスにアクセスすると 503 エラーが発生します。

ソリューション

  1. SLB リスナーの接続ドレインを構成するために service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain アノテーションを追加します。アノテーションの詳細については、「リスナーを管理するための一般的な操作」をご参照ください。

  2. Pod のネットワークモードに基づいて、Pod の preStop および readinessProbe パラメーターを設定します。Pod 構成例:

    • readinessProbe は、コンテナーがネットワークトラフィックを受け入れる準備ができているか確認します。Pod は、準備プローブに合格した後にのみエンドポイントに追加されます。その後、ACS がエンドポイントの更新を検出すると、Pod は SLB インスタンスにアタッチされます。readinessProbe の適切なプローブ間隔、遅延期間、および異常しきい値を設定します。一部のアプリケーションは起動に時間がかかる場合があります。短い期間を指定すると、アプリケーション Pod が繰り返し再起動する可能性があります。

    • preStop の値を、アプリケーション Pod が残りのリクエストを処理するために必要な期間に設定します。terminationGracePeriodSeconds の値を preStop より 30 秒長い期間に設定します。

       apiVersion: v1
       kind: Pod
       metadata:
         name: nginx
         namespace: default
       spec:
         containers:
         - name: nginx
           image: nginx
           # Liveness probing
           livenessProbe:
             failureThreshold: 3
             initialDelaySeconds: 30
             periodSeconds: 30
             successThreshold: 1
             tcpSocket:
               port: 5084
             timeoutSeconds: 1
           # Readiness probing
           readinessProbe:
             failureThreshold: 3
             initialDelaySeconds: 30
             periodSeconds: 30
             successThreshold: 1
             tcpSocket:
               port: 5084
             timeoutSeconds: 1
           # Graceful shutdown
           lifecycle:
             preStop:
               exec:
                 command:
                 - sleep
                 - "30"
         terminationGracePeriodSeconds: 60

クラスター外から SLB インスタンスにアクセスできない

[原因]

SLB インスタンスにアクセス制御リスト (ACL) ルールが構成されているか、SLB インスタンスが期待どおりに実行されていません。

[問題]

クラスター外から SLB インスタンスにアクセスできません。

ソリューション

  1. 次のコマンドを実行してサービスイベントをクエリし、エラーをトラブルシューティングします。詳細については、「サービスエラーとソリューション」をご参照ください。

       kubectl -n {your-namespace} describe svc {your-svc-name}
  2. SLB インスタンスに ACL ルールが構成されているか確認します。ACL ルールが構成されている場合は、クライアント IP アドレスが SLB インスタンスへのアクセスを許可されているか確認します。ACL ルールの構成方法の詳細については、「アクセス制御」をご参照ください。

  3. SLB インスタンスが vServer グループに関連付けられているか確認します。vServer グループが関連付けられていない場合は、アプリケーション Pod がサービスに関連付けられているか、およびそれらが正常に実行されているか確認します。Pod が期待どおりに実行されていない場合は、原因を特定し、エラーをトラブルシューティングします。詳細については、「Pod のトラブルシューティング」をご参照ください。

  4. SLB リスナーによって異常なバックエンドサーバーが検出されているか確認します。異常なバックエンドサーバーが検出されている場合は、アプリケーション Pod が正常に実行されているか確認します。SLB のヘルスチェックの詳細については、「ヘルスチェックスクリプトを実行」をご参照ください。

  5. 問題が解決しない場合は、ACS DingTalk グループに参加してテクニカルサポートを受けてください。


バックエンド HTTPS サービスにアクセスできない

[原因]

SLB インスタンスで証明書情報を指定すると、SLB インスタンスは HTTPS リクエストを復号化し、HTTP リクエストをバックエンド Pod に送信します。

[問題]

バックエンド HTTPS サービスにアクセスできません。

ソリューション

サービスの targetPort を HTTP ポートに設定します。たとえば、次の NGINX サービスで HTTPS ポートが 443 の場合、targetPort の値を 80 に変更します。

例:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  - port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

クイックリファレンス:一般的なアノテーション

次の表は、トラブルシューティングシナリオで最も頻繁に参照されるアノテーションを示しています。完全なアノテーションリファレンスについては、「アノテーションを使用して CLB インスタンスを構成」をご参照ください。

アノテーション目的一般的なシナリオ
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id既存の SLB インスタンスを再利用SLB 関連付けの失敗、SLB 再利用エラー
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-specSLB インスタンスの仕様を設定ENI バックエンドサーバーの互換性、課金方法の競合
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-idSLB インスタンスの vSwitch を指定vSwitch IP アドレスの不足
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-schedulerスケジューリングアルゴリズムを設定トラフィックの不均一な分散
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain接続ドレインを有効化アプリケーション更新中の 503 エラー
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-portポートごとのプロトコルを設定HTTPS バックエンドアクセス失敗
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-idSSL 証明書を設定HTTPS バックエンドアクセス失敗
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-idリソースグループを設定リソースグループ変更エラー
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type課金方法を設定課金方法変更エラー
service.beta.kubernetes.io/backend-typeバックエンドタイプを設定 (例:eni)ENI IP が見つからない、Flannel 互換性