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

Container Service for Kubernetes:アドオンエラーのトラブルシューティング

最終更新日:Jun 19, 2026

ACK のアドオン操作が失敗したときに返される各エラーコードの原因と解決策について説明します。

エラーコードリファレンス

エラーコード 説明
AddonOperationFailed.ResourceExists アドオンで必要なリソースがクラスターにすでに存在します
AddonOperationFailed.ReleaseNameInUse アドオンと同じ名前の Helm リリースがすでに存在します
AddonOperationFailed.WaitForAddonReadyTimeout 更新リクエストの送信後、アドオンの Pod が Ready 状態に達しません
AddonOperationFailed.APIServerUnreachable ACK が Kubernetes API サーバーにアクセスできません
AddonOperationFailed.ResourceNotFound アドオンで必要なリソースが見つかりません
AddonOperationFailed.TillerUnreachable Helm V2 の Tiller にアクセスできません
AddonOperationFailed.FailedCallingWebhook アドオンリソースのミューティング Webhook を呼び出せません
AddonOperationFailed.UserForbidden Tiller に必要なロールベースのアクセス制御 (RBAC) 権限がありません
AddonOperationFailed.TillerNotFound クラスターで実行されている Tiller Pod がありません
AddonOperationFailed.ErrPatchingClusterRoleBinding アドオンで必要な ClusterRoleBinding は存在しますが、競合する設定があります
AddonOperationFailed.ErrApplyingPatch アドオンの YAML マニフェストにバージョン間の互換性がありません

AddonOperationFailed.ResourceExists

症状

コンソールに次のようなエラーが表示されます:

Addon status not match, failed upgrade helm addon arms-cmonitor for cluster c3cf94b952cd34b54b71b10b7********, err: rendered manifests contain a resource that already exists. Unable to continue with update: ConfigMap "otel-collector-config" in namespace "arms-prom" exists and cannot be imported into the current release

原因

アドオンで必要なリソースがクラスターにすでに存在します。一般的な原因は次のとおりです:

  • 別のバージョン (オープンソース版など) が異なる方法でインストールされています。

  • アドオンが Helm V2 でインストールされ、そのリソースが Helm V3 に移行する前に削除されていません。

  • 同じ名前のリソースが手動で作成されています。

ソリューション

エラーメッセージに表示された競合するリソースを削除してから、操作を再試行します。

以下のセクションでは、特定のアドオンのコマンドをリストアップします。

arms-prometheus

arms-prometheus は通常、arms-prom 名前空間にインストールされます。そのリソースを削除してから、arms-prometheus を再インストールします。

kubectl delete ClusterRole arms-kube-state-metrics
kubectl delete ClusterRole arms-node-exporter
kubectl delete ClusterRole arms-prom-ack-arms-prometheus-role
kubectl delete ClusterRole arms-prometheus-oper3
kubectl delete ClusterRole arms-prometheus-ack-arms-prometheus-role
kubectl delete ClusterRole arms-pilot-prom-k8s
kubectl delete ClusterRoleBinding arms-node-exporter
kubectl delete ClusterRoleBinding arms-prom-ack-arms-prometheus-role-binding
kubectl delete ClusterRoleBinding arms-prometheus-oper-bind2
kubectl delete ClusterRoleBinding kube-state-metrics
kubectl delete ClusterRoleBinding arms-pilot-prom-k8s
kubectl delete ClusterRoleBinding arms-prometheus-ack-arms-prometheus-role-binding
kubectl delete Role arms-pilot-prom-spec-ns-k8s
kubectl delete Role arms-pilot-prom-spec-ns-k8s -n kube-system
kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s
kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s -n kube-system

ack-node-local-dns

重要

削除してもワークロードに影響はありません。削除と更新の間に Pod を追加しないでください。追加した場合は、更新後にそれらの Pod を削除して再作成し、DNS キャッシュを再インジェクトする必要があります。

kubectl delete MutatingWebhookConfiguration ack-node-local-dns-admission-controller

リソースを削除した後、ack-node-local-dns を更新します。

arms-cmonitor

kubectl delete ConfigMap otel-collector-config -n arms-prom
kubectl delete ClusterRoleBinding arms-prom-cmonitor-role-binding
kubectl delete ClusterRoleBinding arms-prom-cmonitor-install-init-role-binding
kubectl delete ClusterRole arms-prom-cmonitor-role
kubectl delete ClusterRole arms-prom-cmonitor-install-init-role
kubectl delete ServiceAccount cmonitor-sa-install-init -n kube-system

リソースを削除した後、arms-cmonitor をインストールまたは更新します。

AddonOperationFailed.ReleaseNameInUse

原因

同じ名前の Helm リリースがすでに存在するため、インストールまたは更新ができません。一般的な原因は次のとおりです:

  • 別のバージョンが異なる方法でインストールされています。

  • 以前のインストール試行による Helm リリースが残っています。

ソリューション

  1. ACK コンソールにログインします。左側メニューで、[クラスター] をクリックします。

  2. [クラスター] ページで、対象のクラスターの名前をクリックします。左側メニューで、[アプリケーション] > [Helm] を選択します。

  3. アドオンの Helm リリースを見つけます。[操作] 列で、[削除] をクリックします。ダイアログボックスで、[リリース記録をクリア] を選択し、[OK] をクリックします。

  4. アドオンをインストールまたは更新します。

AddonOperationFailed.WaitForAddonReadyTimeout

原因

更新が送信された後、アドオンの Pod がタイムアウト期間内に Ready 状態に達しません。

トラブルシューティング

  1. ACK コンソールにログインします。左側メニューで、[クラスター] をクリックします。

  2. [クラスター] ページで、対象のクラスターの名前をクリックします。左側メニューで、[オペレーション] > [イベントセンター] を選択します。

  3. [イベント (クラスターリソースイベント)] タブで、[レベル][警告] に設定し、アドオンがデプロイされている名前空間を選択し、[タイプ][Pod] に設定します。イベントの詳細を確認して原因を特定します。

一般的な原因と解決策

原因 1:Pod をスケジューリングできない (FailedScheduling)

クラスターノードがアドオン Pod のスケジューリング要件を満たしていません。イベント詳細で次のメッセージを確認します:

イベントメッセージ 原因 ソリューション
Insufficient memory または Insufficient cpu ノードのリソースが不足しています 不要な Pod を削除するクラスターにノードを追加する、またはノードの設定をアップグレードする
the pod didn't tolerate アドオン Pod がノードのテイントを許容しません ノードからテイントを削除する
didn't match pod anti-affinity rules アンチアフィニティルールを満たせません クラスターにノードを追加する

スケジューリングの問題を解決した後、アドオンの更新を再試行します。

原因 2:Pod サンドボックスを作成できない (FailedCreatePodSandBox)

ネットワークプラグインが Pod に IP アドレスを割り当てることができません。イベント詳細を確認します:

AddonOperationFailed.APIServerUnreachable

原因

ACK が Kubernetes API サーバーに到達できません。通常、API サーバーを公開している Server Load Balancer (SLB) インスタンスの設定が誤っていることが原因です。

ソリューション

API サーバーリクエストの例外のトラブルシューティング」をご参照ください。

AddonOperationFailed.ResourceNotFound

原因

必要なアドオンリソースが見つかりません。外部から削除または変更された可能性が高く、インプレース更新ができません。

ソリューション

アドオンをアンインストールし、最新バージョンをインストールします。

AddonOperationFailed.TillerUnreachable

原因

アドオンは Helm V2 を使用しており、Tiller に依存しています。Tiller でエラーが発生し、アクセスできなくなっています。

ソリューション

  1. ACK コンソールにログインします。左側メニューで、[クラスター] をクリックします。

  2. [クラスター] ページで、対象のクラスターの名前をクリックします。左側メニューで、[ワークロード] > [Pod] を選択します。

  3. kube-system 名前空間を選択します。[tiller] Pod を見つけて削除します。システムが自動的に再作成します。

  4. Tiller Pod が Ready 状態になった後、アドオン操作を再試行します。

AddonOperationFailed.FailedCallingWebhook

症状

コンソールに次のようなエラーが表示されます:

failed to create: Internal error occurred: failed calling webhook "rancher.cattle.io": failed to call webhook: Post "https://rancher-webhook.cattle-system.svc:443/v1/webhook/mutation?timeout=10s": no endpoints available for service "rancher-webhook"

原因

アドオンリソースのミューティング Webhook を呼び出せないため、更新がブロックされています。

ソリューション

エラーメッセージで特定された、エラーとなっている Webhook を修正し、アドオンの更新を再試行します。

この例では、cattle-system 名前空間の rancher-webhook Webhook が利用できません。

AddonOperationFailed.UserForbidden

原因

クラスターは Helm V2 を使用していますが、Tiller にリソースを管理するための RBAC 権限がないため、アドオンの操作ができません。

ソリューション

Tiller に必要な RBAC 権限を付与します。「ロールベースのアクセス制御」をご参照ください。

AddonOperationFailed.TillerNotFound

原因

クラスターは Helm V2 を使用していますが、Tiller Pod が実行されていません。

ソリューション

kube-system 名前空間の tiller-deploy Pod のトラブルシューティングを行います。Pod が正常に実行された後、アドオン操作を再試行します。「Pod の問題のトラブルシューティング」をご参照ください。

AddonOperationFailed.ErrPatchingClusterRoleBinding

原因

アドオンで必要な ClusterRoleBinding は存在しますが、競合する設定があります。通常、別途インストールされたオープンソース版が原因です。

ソリューション

オープンソースのアドオンバージョンをアンインストールします:

  1. ACK コンソールにログインします。左側メニューで、[クラスター] をクリックします。

  2. [クラスター] ページで、対象のクラスターの名前をクリックします。左側メニューで、[アプリケーション] > [Helm] を選択します。

  3. アドオンの Helm リリースを見つけます。[操作] 列で、[削除] をクリックします。ダイアログボックスで、[リリース記録をクリア] を選択し、[OK] をクリックします。

  4. アドオンをインストールまたは更新します。

AddonOperationFailed.ErrApplyingPatch

症状

コンソールに次のようなエラーが表示されます:

spec.template.spec.initContainers[1].name: Duplicate value: "install-cni"

原因

インストールされているバージョンの YAML マニフェストがターゲットバージョンと互換性がありません。一般的な原因は次のとおりです:

  • 別のバージョン (オープンソース版など) が異なる方法でインストールされています。

  • アドオンの YAML マニフェストが手動で変更されています。

  • 現在インストールされているバージョンはサポートされなくなりました。

ソリューション

エラーメッセージに基づいてコンポーネントの YAML マニフェストを修正します。サポートが必要な場合は、してください

例: Flannel コンテナ名の競合

廃止された Flannel バージョンがインストールされている場合、更新は次のエラーで失敗することがあります:

spec.template.spec.initContainers[1].name: Duplicate value: "install-cni"

Flannel DaemonSet マニフェストを編集します:

kubectl -n kube-system edit ds kube-flannel-ds

spec.template.spec.containers 配下にある install-cni コンテナを見つけて削除します (例の 7〜21 行):

      containers:
      - name: kube-flannel
        image: registry-vpc.{{.Region}}.aliyuncs.com/acs/flannel:{{.ImageVersion}}
        command: [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr" ]
        ...
    # - command:
      # - /bin/sh
      # - -c
      # - set -e -x; cp -f /etc/kube-flannel/cni-conf.json /etc/cni/net.d/10-flannel.conf;
        # while true; do sleep 3600; done
      # image: registry-vpc.cn-beijing.aliyuncs.com/acs/flannel:v0.11.0.1-g6e46593e-aliyun
      # imagePullPolicy: IfNotPresent
      # name: install-cni
      # resources: {}
      # terminationMessagePath: /dev/termination-log
      # terminationMessagePolicy: File
      # volumeMounts:
      # - mountPath: /etc/cni/net.d
        # name: cni
      # - mountPath: /etc/kube-flannel/
          name: flannel-cfg
        ...

これらの行を削除しても、実行中のワークロードが中断されることはありません。ローリングアップデートが自動的に開始されます。完了後、ACK コンソールから Flannel を更新します。「コンポーネントの管理」をご参照ください。