vSphere IaaS control plane では、ReadWriteMany モードのパーシステント ボリュームがサポートされます。ReadWriteMany のサポートにより、1 つの TKG クラスタで実行されている複数のポッドまたはアプリケーションで 1 つのボリュームを同時にマウントできます。vSphere IaaS control plane は、ReadWriteMany パーシステント ボリュームに、vSAN ファイル共有によってバッキングされる CNS ファイル ボリュームを使用します。vSAN 共有を使用するには、vSAN 環境で vSAN ファイル サービスを設定し、スーパーバイザー でファイル ボリュームのサポートを有効にする必要があります。
ファイル ボリュームに関する考慮事項
vSphere IaaS control plane でパーシステント ボリュームに対するファイル ボリュームのサポートを有効にする場合は、次の点に注意してください。
- ファイル ボリュームがサポートされるのは、Tanzu Kubernetes Grid クラスタ内のワークロードのみです。スーパーバイザー 名前空間内の vSphere ポッド や仮想マシン サービス仮想マシンなどのワークロードではサポートされません。
- Kubernetes で RWX ボリュームを要求すると、vSAN ファイル サービスにより、要求されたサイズおよび適切な SPBM ポリシーを持つ NFS ベースのファイル共有が作成されます。RWX ボリュームごとに vSAN ファイル共有が 1 つ作成されます。VMware は、vSAN ファイル サービス クラスタごとに 100 個の共有をサポートします。つまり、使用できる RWX ボリュームは 100 個までです。
- TKG クラスタでは、TKr バージョン 1.22 以降を使用します。
詳細については、VMware Tanzu Kubernetes リリースのリリース ノートを参照してください。
- vSphere IaaS control plane に対してファイル ボリュームのサポートを有効にすると、セキュリティが脆弱になる可能性がありますのでご注意ください。
- ボリュームは暗号化なしでマウントされます。暗号化されていないデータは、データがネットワークを通過する間にアクセスされる可能性があります。
- スーパーバイザー名前空間内でファイル共有アクセスを隔離するために、アクセス コントロール リスト (ACL) がファイル共有に対して使用されます。これにより、IP スプーフィングのリスクが発生する可能性があります。
- ネットワークについては、次のガイドラインに従ってください。
- vSphere IaaS control plane のネットワークに NSX を使用している場合は、スーパーバイザー 名前空間で NAT モードが有効になっていることを確認します。スーパーバイザー での vSphere 名前空間 の作成と構成を参照してください。
- vSAN ファイル サービスがワークロード ネットワークからルーティング可能であることと、ワークロード ネットワークと vSAN ファイル サービスの IP アドレスの間に NAT が設定されていないことを確認します。
- vSAN ファイル サービスと vSphere IaaS control plane に、共通の DNS サーバを使用します。
- ファイル ボリュームのサポートを有効にし、後から無効にしても、クラスタにプロビジョニングした既存の ReadWriteMany パーシステント ボリュームは影響を受けず、使用可能なままになります。新しい ReadWriteMany パーシステント ボリュームを作成することはできなくなります。
パーシステント ボリュームでファイル ボリュームのサポートを有効にするためのワークフロー
次のプロセスに従って、ファイル ボリュームのサポートを有効にします。
- vSphere 管理者が、vSAN ファイル サービスが構成された vSAN クラスタを設定します。
- vSAN ファイル サービスの有効化およびファイル サービスの構成を参照してください。
- vSAN ストレッチ クラスタを使用する環境の固有の設定については、ストレッチ クラスタを使用する vSAN ファイル サービスを参照してください。
- vSphere 管理者は、スーパーバイザー でファイル ボリュームのサポートを有効にします。
『vSphere IaaS 制御プレーンのインストールと構成』ドキュメントのスーパーバイザーでのストレージ設定の変更を参照してください。
- DevOps エンジニアがパーシステント ボリュームをプロビジョニングし、PVC の
accessMode
をReadWriteMany
と設定します。同じ PVC で複数のポッドをプロビジョニングできます。
例:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteMany storageClassName: gold resources: requests: storage: 3Gi