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

Container Service for Kubernetes:csi-plugin および csi-provisioner コンポーネントの管理

最終更新日:Mar 03, 2026

Container Storage Interface (CSI) コンポーネントは、Container Service for Kubernetes (ACK) クラスターにおける動的ボリュームのライフサイクル操作を処理します。このガイドでは、コンポーネントのロール、アップグレード手順、およびトラブルシューティングについて説明します。

CSI コンポーネントの概要

ACK は、クラスター作成時にデフォルトで 2 つの CSI コンポーネントをインストールします。

コンポーネント

ロール

デプロイタイプ

csi-plugin

ボリュームのマウント、アンマウント、フォーマット

DaemonSet

csi-provisioner

ボリュームを動的に作成およびスケールアウトし、スナップショットを作成します。デフォルトで Elastic Block Storage (EBS)、NAS、および OSS ボリュームをサポートします。

Deployment

新しいクラスターは、デフォルトで csi-provisioner のマネージドバージョンをインストールします。Alibaba Cloud はマネージドコンポーネントの運用と保守 (O&M) を処理するため、関連する Pod はクラスターに表示されません。

csi-plugin および csi-provisioner のアップグレード

ACK コンソールから、利用可能な更新を確認し、CSI コンポーネントをアップグレードします。

重要

csi-compatible-controller コンポーネントが FlexVolume から CSI への移行に使用されており、移行が完了していない場合、自動アップグレードはブロックされます。最初に移行を完了するか、移行中に CSI コンポーネントを手動でアップグレードしてください。詳細については、「コンポーネントのアップグレード」をご参照ください。

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. クラスター」ページで、対象のクラスターを見つけ、その名前をクリックします。左側のナビゲーションウィンドウで、「アドオン」をクリックします。

  3. [ストレージ] タブをクリックします。 [csi-プラグイン][csi-プロビジョナー] カードで、利用可能なアップグレードを確認して適用します。

    コンソールでのアップグレードが失敗した場合は、トラブルシューティング手順について「コンポーネントのアップグレードの失敗」をご参照ください。

トラブルシューティング

コンポーネントの問題

csi-plugin が exec format error で起動に失敗する

csi-plugin コンテナーは次を報告します。

exec /usr/bin/plugin.csi.alibabacloud.com: exec format error

原因: csi-plugin は amd64 および arm64 アーキテクチャの両方をサポートしています。このエラーは、イメージプルが不完全な場合に発生します。つまり、イメージメタデータは存在するものの、バイナリが無効です。イメージプル中の強制ノードシャットダウンが一般的なトリガーです。シャットダウンコマンドが実行されたかどうかを確認するには、ECS インスタンスの ActionTrail ログを確認してください。

ソリューション:

  • オプション A: 新しいノードを追加してクラスターをスケールアウトし、現在のノードをドレインします。

  • オプション B: 新しいノードを追加できない場合:

    1. 現在のノードからすべてのアプリケーションをドレインし、クラスターからノードを削除します。

    2. ノードにログインし、コンテナーがあればすべて削除します。

    3. /var/lib/containerd ディレクトリ内のすべてのファイルを削除します。

    4. ノードをクラスターに戻します。

csi-provisioner からのメモリ不足 (OOM) エラー

csi-provisioner Pod のサイドカーコンテナーは、Pod、永続ボリューム (PV)、および永続ボリューム要求 (PVC) に関する情報をキャッシュします。クラスターの規模が拡大すると、このキャッシュが OOM エラーを引き起こす可能性があります。

  • マネージドバージョン: サポートについては、チケットを送信してください。

  • セルフマネージドバージョン: クラスターサイズに基づいてメモリ制限を調整します: Modify memory limit

    1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、目的のクラスターを探してその名前をクリックします。左側のナビゲーションウィンドウで、[アドオン] をクリックします。

    3. [アドオン] ページで、[csi-provisioner] を検索し、アイコン アイコンをクリックし、[YAML の表示] を選択します。

    4. YAML ファイルを編集してメモリ制限を増やします。

csi-plugin Pod でのネットワークトラフィックの増加

Pod モニタリングでは、csi-plugin のネットワークトラフィックが異常に高いことが示されます。

原因: csi-plugin はノードに NAS ボリュームをマウントします。Pod が NAS ボリュームを使用すると、その Pod からの NAS リクエストトラフィックは csi-plugin 名前空間を通過します。クラスターモニタリングは、このトラフィックを csi-plugin Pod に対して記録します。

アクションは不要です。 トラフィックはモニタリングによって記録されるだけです。重複することはなく、余分な帯域幅を消費することもありません。

csi-provisioner ログにリース更新失敗エラーが表示される

kubectl logs csi-provisioner-xxxx -n kube-system を実行すると、次が表示されます。

failed to renew lease xxx timed out waiting for the condition

原因: csi-provisioner は、複数のレプリカを実行する高可用性 (HA) コンポーネントです。Pod は Kubernetes Lease オブジェクトを使用してリーダー選出を行います。リースを取得した Pod がリーダーとなり、クラスターにサービスを提供します。このエラーは、Pod が API サーバーに到達できなかったことを意味します。

ソリューション: クラスターネットワークと API サーバーが正常に機能しているか確認してください。問題が解決しない場合は、サポートについてチケットを送信してください。

コンポーネントのアップグレードの失敗

csi-plugin の事前チェックが失敗する

  • 非本番クラスターまたは使用中のボリュームがない場合: 手動でイメージを更新します。

    kubectl set image -n kube-system daemonset/csi-plugin csi-plugin=<image url> <code data-tag="inlineCode" id="eb665619831lb">kubectl set image -n kube-system daemonset/csi-plugin csi-plugin=<image url>

    <image url> をターゲットバージョンのイメージ URL に置き換えます。利用可能なバージョンについては、「csi-plugin」をご参照ください。

  • 重要なデータを持つ本番クラスターの場合: 手動アップグレードをリクエストするには、チケットを送信してください。

csi-plugin の事前チェックは成功するが、アップグレードが失敗する

csi-plugin コンポーネントは DaemonSet です。クラスター内のいずれかのノードが NotReady 状態または Running 以外の状態である場合、アップグレードは失敗します。まず障害のあるノードを修正し、その後アップグレードを再試行してください。

原因が不明な場合は、手動アップグレードをリクエストするためにチケットを送信してください。

コンソールに csi-plugin は表示されるが csi-provisioner は表示されない

以前のバージョンの csi-provisioner (1.14 以前) は StatefulSet としてデプロイされていました。クラスターに csi-provisioner StatefulSet が存在する場合は、それを削除して再インストールしてください。

kubectl delete sts csi-provisioner

その後、コンソールから csi-provisioner コンポーネントを再インストールします。エラーが発生した場合は、手動アップグレードをリクエストするためにチケットを送信してください。

csi-provisioner の事前チェックが失敗する

  • 非本番クラスターまたは動的にプロビジョニングされたボリュームがない場合: 手動でイメージを更新します。

    kubectl set image -n kube-system deployment/csi-provisioner csi-provisioner=<image url>

    <image url> をターゲットバージョンのイメージ URL に置き換えます。利用可能なバージョンについては、「csi-provisioner」をご参照ください。

  • 動的にプロビジョニングされたディスク、NAS、または OSS ボリュームと重要なデータを持つ本番クラスターの場合: 手動アップグレードをリクエストするには、チケットを送信してください。

csi-provisioner の事前チェックは成功するが、アップグレードが失敗する

手動アップグレードをリクエストするには、チケットを送信してください。

ノード数要件により csi-provisioner のアップグレードが失敗する

この問題には 2 つのバリアントがあります。

バリアント 1 -- ノード数エラーにより事前チェックが失敗する

事前チェックでは、クラスターノードの数が要件を満たしていないと報告されます。高可用性を確保するために、csi-provisioner はプライマリおよびセカンダリ Pod を実行し、これらは異なるノードにデプロイする必要があります。クラスターにノードが 1 つしかない場合、アップグレードは失敗します。

ソリューション: csi-provisioner コンポーネントを更新します。詳細については、「csi-plugin および csi-provisioner コンポーネントの管理」をご参照ください。

バリアント 2 -- 事前チェックは成功するが、Pod が 403 Forbidden で CrashLoopBackOff になる

csi-provisioner Pod のログに 403 Forbidden 応答が表示されます。

time="2023-08-05T13:54:00+08:00" level=info msg="Use node id : <?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n <head>\n  <title>403 - Forbidden</title>\n </head>\n <body>\n  <h1>403 - Forbidden</h1>\n </body>\n</html>\n"

Pod が実行されているノードでセキュリティ強化が有効になっています。これにより、CSI が必要とするメタデータサーバーへのアクセスがブロックされます。

ソリューション: ノードのセキュリティ強化を無効にします。CSI はノードのメタデータへのアクセスを必要とします。

StorageClass プロパティの変更により csi-provisioner のアップグレードが失敗する

事前チェックは、StorageClass プロパティが期待を満たしていないことを示すエラーで失敗します。

原因: デフォルトの StorageClass のプロパティが変更されました。これは、同じ名前で StorageClass を削除して再作成した場合に発生する可能性があります。StorageClass プロパティは不変です。それらを変更すると、アップグレードが失敗します。

ソリューション:

  1. クラスター内のデフォルトの StorageClass である alicloud-disk-essdalicloud-disk-availablealicloud-disk-efficiencyalicloud-disk-ssd、および alicloud-disk-topology を削除します。この削除は既存のアプリケーションには影響しません。

  2. csi-provisioner コンポーネントを再インストールします。システムは StorageClass を自動的に再作成します。

重要

カスタム StorageClass を使用するには、異なる名前で新しいものを作成します。デフォルトの StorageClass は変更しないでください。

参考文献

  • CSI の詳細については、「alibaba-cloud-csi-driver」をご参照ください。

  • コンポーネントのインストールとアンインストールの詳細については、「コンポーネント」をご参照ください。