web-dev-qa-db-ja.com

GKEのボリュームクレーム/ボリュームボリュームのマルチアタッチエラーはすでに排他的にアタッチされています

問題はあったようです かなり前に解決されました 。回答とコメントが実際の解決策を提供していないため、経験豊富なユーザーから助けを求めたいと思います

エラーは次のとおりです(ContainerCreating状態を維持するポッドを説明する場合):

Multi-Attach error for volume "pvc-xxx" Volume is already exclusively attached to one node and can't be attached to another 

これはすべてGKEで実行されます。以前のクラスターを使用していたが、問題は発生しなかった。この新しいクラスターを作成するときに同じディスクを再利用しました—関連しているかどうかはわかりません

これは完全なyaml設定ファイルです (私はそれを強調するために関係するコード部分をコメント化したままにします;効果的に使用しているときではありません)

明らかな回避策の場合は事前に感謝

10
Ben

あなたの説明に基づいて、あなたが経験していることはまさに起こるはずです。

PV/PVC定義gcePersistentDiskを使用しています。 accessModeReadWriteOnceです-これは、このPVが単一のNodeにのみ接続できることを意味します(stressingNodeここでは、同じNodeで複数のポッドが実行されている可能性があります。 PV)。これについてできることは多くありません。 gcePersistentDiskはリモートブロックデバイスのようなものであり、複数のNodesに同時にマウントすることはできません(を除く)読み取り専用)。

ニース サポートされているPVがReadWriteMany (つまり、複数のNodesに対する書き込みアクセス権を示す表)同時に):

重要!ボリュームは、一度に1つのアクセスモードを使用してのみマウントできます。たとえば、GCEPersistentDiskは、単一のノードではReadWriteOnceとして、または多くのノードではReadOnlyManyとしてマウントできますが、同時にマウントすることはできません。

11
Janos Lenart

デプロイyamlには5つのレプリカが表示されますが、これはGCE PD in ReadWriteOnceモードでは機能しません。GCEPDは複数のノードにのみ接続できますReadOnlyManyモード。

すべてのレプリカで書き込み可能な共有ストレージが必要な場合は、NFSやGlusterなどのマルチライターソリューションを検討する必要があります。

各レプリカに独自のディスクが必要な場合は、レプリカごとにPVCを持つStatefulSetを使用できます。

3
Michelle