Container Storage Interface (CSI) プラグインは、csi-pluginとcsi-provisionerで構成されています。 これらのコンポーネントを使用して、ボリュームを自動的に作成し、マウントおよびアンインストールできます。
前提条件
Kubernetesバージョン1.14以降を実行するContainer Service for Kubernetes (ACK) クラスターが作成され、クラスターのボリュームプラグインとしてCSIプラグインが指定されます。 詳細については、「クラスターの作成」をご参照ください。
概要
CSIプラグインは、デフォルトでACKクラスターにデプロイされるcsi-pluginとcsi-provisionerで構成されます。 CSIの詳細については、「alibaba-cloud-csi-driver」をご参照ください。 CSIの基本情報とリリースノートの詳細については、「csi-plugin」および「csi-provisioner」をご参照ください。
csi-plugin: ボリュームのマウントとマウント解除に使用されます。 デフォルトでは、ACKでは、csi-pluginを使用して、ディスクボリューム、File Storage NAS (NAS) ボリューム、およびObject Storage Service (OSS) ボリュームのタイプのボリュームをマウントできます。
csi-provisioner: ボリュームを自動的に作成するために使用されます。 ディスクボリュームとNASボリュームがサポートされています。
次の図は、ACK管理クラスターとACK専用クラスターのCSIプラグインの展開アーキテクチャを示しています。
ACK管理クラスター | ACK専用クラスター |
ACK管理クラスターでは、csi-provisionerとcsi-pluginの両方がワーカーノードで実行されます。 | ACK専用クラスターでは、csi-provisionerはマスターノードにデプロイされます。 csi-pluginは、DaemonSetとしてマスターノードとワーカーノードに自動的にデプロイされます。 |
CSIプラグインが正常にインストールされていることを確認する
ACK管理クラスターまたはACK専用クラスターを作成するときにCSIプラグインをボリュームプラグインとして指定した場合、システムはデフォルトでcsi-pluginとcsi-provisionerをインストールします。
システムによってインストールされているcsi-pluginとcsi-provisionerをアンインストールしないでください。 そうしないと、Alibaba Cloudディスク、OSSバケット、またはNASファイルシステムのマウントに失敗します。
次の手順を実行して、csi-pluginおよびcsi-provisionerコンポーネントが正常にデプロイされていることを確認できます。
次のコマンドを実行して、csi-pluginがクラスターにインストールされているかどうかを確認します。
kubectl get pod -n kube-system | grep csi-plugin
次のコマンドを実行して、csi-provisionerがクラスターにインストールされているかどうかを確認します。
kubectl get pod -n kube-system | grep csi-provisioner
csi-pluginとcsi-provisionerの更新
ACKコンソールでcsi-pluginとcsi-provisionerを確認および更新できます。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
[ストレージ] タブをクリックし、csi-pluginとcsi-provisionerを見つけて、コンポーネントを更新できるかどうかを確認します。 アップグレードが表示されたら、コンポーネントを更新します。
FAQ about update failures
CSI-compatible-controllerコンポーネントを使用してクラスターをFlexVolumeからcsiに移行し、移行がまだ進行中の場合、csi-pluginおよびcsi-provisionerコンポーネントを自動的に更新することはできません。 コンポーネントを更新する前に移行を完了するか、移行プロセス中にCSIコンポーネントを手動で更新することを推奨します。 詳細については、「コンポーネントの更新」をご参照ください。
コンソールでコンポーネントの更新に失敗した場合、またはコンポーネントが事前チェックに合格しなかった場合は、次の操作を実行してトラブルシューティングを行うことができます。
csi-pluginが事前チェックに合格しません
ディスク、NASファイルシステム、またはOSSバケットを使用するボリュームがクラスターにプロビジョニングされていない場合は、csi-pluginを手動で更新する必要があります。
ディスク、NASファイルシステム、またはOSSバケットを使用するボリュームがクラスターでプロビジョニングされ、クラスターがステージング環境で作成されている場合は、csi-pluginを手動で更新する必要があります。
ディスク、NASファイルシステム、またはOSSバケットを使用するボリュームがクラスターにプロビジョニングされ、ビジネスクリティカルなデータがボリュームに格納されている場合は、チケットを送信
テクニカルサポートを要求するため。
csi-pluginは事前チェックを渡しますが、更新に失敗します
クラスター内のノードが準備完了状態かどうかを確認します。 NotReady状態のノードにcsi-pluginがインストールされている場合は、ノードの状態を修正する必要があります。
問題が解決しない場合は、チケットを送信
手動更新を申請します。csi-pluginはコンソールに表示されますが、csi-provisionerは表示されません
csi-provisionerはStatefulSetとしてデプロイされます。 この場合、チケットを送信
手動更新を申請します。csi-provisionerが事前チェックに合格しません
ディスクまたはNASファイルシステムを使用するボリュームがクラスタ内のStorageClassesを使用して動的にプロビジョニングされていない場合は、csi-provisionerを手動で更新する必要があります。
ディスクまたはNASファイルシステムを使用するボリュームが、クラスタ内のStorageClassesを使用して動的にプロビジョニングされ、クラスタがステージング環境で作成されている場合、CSI-Provisionerを手動で更新する必要があります。
ディスクまたはNASファイルシステムを使用するボリュームがクラスタ内のStorageClassesを使用して動的にプロビジョニングされ、ビジネスクリティカルなデータがボリュームに格納されている場合、チケットを送信
手動更新を申請します。
csi-provisionerは事前チェックに合格しますが、更新に失敗します
手動更新を申請します。関連ドキュメント
CSIコンポーネントの基本情報とリリースノートの詳細については、「csi-plugin」および「csi-provisioner」をご参照ください。