Skip to main content
本製品の最新リリースがご利用いただけます。
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ネームスペース間でNFSボリュームを共有します

共同作成者

Tridentを使用すると、プライマリネームスペースにボリュームを作成し、1つ以上のセカンダリネームスペースで共有できます。

特徴

Astra TridentVolumeReference CRを使用すると、1つ以上のKubernetesネームスペース間でReadWriteMany(RWX)NFSボリュームをセキュアに共有できます。このKubernetesネイティブ解決策 には、次のようなメリットがあります。

  • セキュリティを確保するために、複数のレベルのアクセス制御が可能です

  • すべてのTrident NFSボリュームドライバで動作

  • tridentctlやその他の非ネイティブのKubernetes機能に依存しません

この図は、2つのKubernetesネームスペース間でのNFSボリュームの共有を示しています。

ネームスペース間共有の概念図。

クイックスタート

NFSボリューム共有はいくつかの手順で設定できます。

1つボリュームを共有するように送信元PVCを設定する

ソースネームスペースの所有者は、ソースPVCのデータにアクセスする権限を付与します。

2つ宛先名前空間にCRを作成する権限を付与する

クラスタ管理者が、デスティネーションネームスペースの所有者にTridentVolumeReference CRを作成する権限を付与します。

3つデスティネーションネームスペースにTridentVolumeReferenceを作成

宛先名前空間の所有者は、送信元PVCを参照するためにTridentVolumeReference CRを作成します。

4つ宛先ネームスペースに下位PVCを作成します。

宛先名前空間の所有者は、送信元PVCからのデータソースを使用する下位PVCを作成します。

ソースネームスペースとデスティネーションネームスペースを設定します

セキュリティを確保するために、ネームスペース間共有では、ソースネームスペースの所有者、クラスタ管理者、および宛先ネームスペースの所有者によるコラボレーションとアクションが必要です。ユーザロールは各手順で指定します。

手順
  1. ソースネームスペースの所有者: 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

  2. *クラスタ管理者:*カスタムロールとkubeconfigを作成して、デスティネーションネームスペースの所有者にTridentVolumeReference CRを作成する権限を付与します。

  3. *デスティネーションネームスペースの所有者:*ソースネームスペースを参照するTridentVolumeReference CRをデスティネーションネームスペースに作成します pvc1

    apiVersion: trident.netapp.io/v1
    kind: TridentVolumeReference
    metadata:
      name: my-first-tvr
      namespace: namespace2
    spec:
      pvcName: pvc1
      pvcNamespace: namespace1
  4. 宛先ネームスペース所有者:(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、クローン、およびミラーリングは下位のボリュームでは実行できません。

詳細情報

ネームスペース間のボリュームアクセスの詳細については、次の資料を参照してください。