File Storage for VPCをマウントしようとするとアプリ・ポッドが Container creating でスタックするのはなぜですか?

VPCクラスターにおけるファイルコンテナの作成に関する問題のトラブルシューティングを行います。

File Storage for VPC を使用するアプリをデプロイしようとすると、次のようなエラーメッセージが表示されます。

ibm-vpc-file-csi ドライバー・ログを取得するためのコマンド例。

kubectl logs ibm-vpc-file-csi-node-xxx -n kube-system -c iks-vpc-file-node-driver

エラー・メッセージを含む出力例。

ibmcsidriver/node.go:94","msg":"CSINodeServer-NodePublishVolume..."
ibmcsidriver/node.go:160","msg":"CSINodeServer-NodeUnpublishVolume..."

describe pod コマンドの例。

kubectl describe pod ibm-vpc-file-csi-node-xxx -n kube-system -c iks-vpc-file-node-driver

エラー・メッセージを含む出力例。

Warning FailedMount 68s kubelet MountVolume.SetUp failed for volume "pvc-c37fe511-ec6d-44c1-8c55-1b5e2c21ec5b" : rpc error: code = DeadlineExceeded desc = context deadline exceeded
Warning FailedMount 65s kubelet Unable to attach or mount volumes: unmounted volumes=[test-persistent-storage], unattached volumes=[], failed to process volumes=[]: timed out waiting for the condition

pipelineruns ログを取得するコマンドの例。

kubectl logs cat -n pipelineruns

エラー・メッセージを含む出力例。

Error from server (BadRequest): container "cat" in pod "cat" is waiting to start: ContainerCreating

一時的なネットワーク障害が原因で、ファイル共有が到達不能になり、マウントできなくなる可能性があります。

この問題を解決するには、以下の手順を実行します。

新しいセキュリティ・グループ・ルールは、 4.11 以降のバージョンで導入された。 これらのルール変更により、 File Storage for VPC を使用する前にセキュリティグループを同期する必要があります。 クラスタの初期バージョンが 4.11 またはそれ以前の場合は、以下のコマンドを実行してセキュリティ・グループ設定を同期します。

  • クラスタの初期バージョンが4.11またはそれ以前の場合:

    1. クラスタのIDを取得してください。
        ibmcloud oc cluster ls
        ```
    1. `kube-<clusterID>` セキュリティグループのIDを取得する。
    ```sh {: pre}
        ibmcloud is sg kube-<cluster-id>  | grep ID
        ```
    1. 前のステップで取得したIDを使って、`kube-<clusterID>` セキュリティグループを同期します。
    ```sh {: pre}
        ibmcloud ks security-group sync -c <cluster ID> --security-group <ID>
        ```
    
  • クラスタがバージョン4.11以降で作成されている場合は、PodがデプロイされているワーカーノードがVNIセキュリティグループにallowlistedされていることを確認してください。

  1. 問題が解決しない場合は、サポートにお問い合わせください。 サポート Case を開きます。 ケースの詳細には、関連するログ・ファイル、エラー・メッセージ、またはコマンド出力を必ず含めてください。