ネームスペース間でNFSボリュームを共有します
Tridentを使用すると、プライマリネームスペースにボリュームを作成し、1つ以上のセカンダリネームスペースで共有できます。
特徴
Astra TridentVolumeReference CRを使用すると、1つ以上のKubernetesネームスペース間でReadWriteMany(RWX)NFSボリュームをセキュアに共有できます。このKubernetesネイティブ解決策 には、次のようなメリットがあります。
-
セキュリティを確保するために、複数のレベルのアクセス制御が可能です
-
すべてのTrident NFSボリュームドライバで動作
-
tridentctlやその他の非ネイティブのKubernetes機能に依存しません
この図は、2つのKubernetesネームスペース間でのNFSボリュームの共有を示しています。
クイックスタート
NFSボリューム共有はいくつかの手順で設定できます。
ソースネームスペースの所有者は、ソースPVCのデータにアクセスする権限を付与します。
クラスタ管理者が、デスティネーションネームスペースの所有者にTridentVolumeReference CRを作成する権限を付与します。
宛先名前空間の所有者は、送信元PVCを参照するためにTridentVolumeReference CRを作成します。
宛先名前空間の所有者は、送信元PVCからのデータソースを使用する下位PVCを作成します。
ソースネームスペースとデスティネーションネームスペースを設定します
セキュリティを確保するために、ネームスペース間共有では、ソースネームスペースの所有者、クラスタ管理者、および宛先ネームスペースの所有者によるコラボレーションとアクションが必要です。ユーザロールは各手順で指定します。
-
ソースネームスペースの所有者: pvc(
pvc1`を作成します)(`namespace2
。注釈を使用して、デスティネーションネームスペースとの共有権限を付与します。shareToNamespace
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc1 namespace: namespace1 annotations: trident.netapp.io/shareToNamespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100Gi
Astra TridentがPVとバックエンドのNFSストレージボリュームを作成
-
カンマ区切りリストを使用して、複数の名前空間にPVCを共有できます。たとえば、 `trident.netapp.io/shareToNamespace: namespace2,namespace3,namespace4`です。
-
を使用して、すべてのネームスペースと共有できます
*
。例えば、trident.netapp.io/shareToNamespace: *
-
PVCはいつでも更新してアノテーションを含めることができます
shareToNamespace
。
-
-
*クラスタ管理者:*カスタムロールとkubeconfigを作成して、デスティネーションネームスペースの所有者にTridentVolumeReference CRを作成する権限を付与します。
-
*デスティネーションネームスペースの所有者:*ソースネームスペースを参照するTridentVolumeReference CRをデスティネーションネームスペースに作成します
pvc1
。apiVersion: trident.netapp.io/v1 kind: TridentVolumeReference metadata: name: my-first-tvr namespace: namespace2 spec: pvcName: pvc1 pvcNamespace: namespace1
-
宛先ネームスペース所有者:(
pvc2`宛先ネームスペースにPVCを作成(`namespace2
)。注釈を使用して送信元PVCを指定します。shareFromPVC
kind: PersistentVolumeClaim apiVersion: v1 metadata: annotations: trident.netapp.io/shareFromPVC: namespace1/pvc1 name: pvc2 namespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100Gi
宛先PVCのサイズは、送信元PVCのサイズ以下である必要があります。
Astra TridentはデスティネーションPVCのアノテーションを読み取り shareFromPVC
、ソースPVストレージリソースを共有する独自のストレージリソースのない下位ボリュームとしてデスティネーションPVを作成します。宛先PVCとPVは、通常どおりバインドされているように見えます。
共有ボリュームを削除
複数のネームスペースで共有されているボリュームは削除できます。Tridentが、ソースネームスペースのボリュームへのアクセスを削除し、ボリュームを共有する他のネームスペースへのアクセスを維持します。ボリュームを参照するすべてのネームスペースが削除されると、Astra Tridentによってボリュームが削除されます。
下位ボリュームのクエリに使用 tridentctl get
ユーティリティを使用する[tridentctl`と、コマンドを実行して従属ボリュームを取得できます `get
。詳細については、リンク:../ Trident -reference/tridentctl.htmlコマンドとオプション]を参照して[`tridentctl`ください。
Usage: tridentctl get [option]
フラグ:
-
`-h, --help
:ボリュームのヘルプ。 -
--parentOfSubordinate string
:クエリを下位のソースボリュームに制限します。 -
--subordinateOf string
:クエリをボリュームの下位に限定します。
制限事項
-
Astra Tridentでは、デスティネーションネームスペースが共有ボリュームに書き込まれるのを防ぐことはできません。共有ボリュームのデータの上書きを防止するには、ファイルロックなどのプロセスを使用する必要があります。
-
または
shareFromNamespace`注釈を削除したり、CRを削除したりし `TridentVolumeReference`て、送信元PVCへのアクセスを取り消すことはできません `shareToNamespace
。アクセスを取り消すには、下位PVCを削除する必要があります。 -
Snapshot、クローン、およびミラーリングは下位のボリュームでは実行できません。
詳細情報
ネームスペース間のボリュームアクセスの詳細については、次の資料を参照してください。
-
にアクセスします"ネームスペース間でのボリュームの共有:ネームスペース間のボリュームアクセスを許可する場合は「Hello」と入力します"。
-
のデモをご覧ください "ネットアップTV"。