既存のファイル・システムを使用した永続ファイル・システム・ストレージの作成
Roving Edgeデバイスでは、既存のファイル・システムにPVCをプロビジョニングできます。
この手順では、マウント・ターゲット、ファイル・システムおよびファイル・システムのエクスポートを作成します。次に、kubectlコマンドを使用して、ストレージ・クラス、永続ボリュームおよび永続ボリューム要求を作成します。
-
マウント・ターゲットを作成します。
手順については、Creating a Mount Targetを参照してください。
重要
ワーカー・ノードからマウント・ターゲットに到達できるようにするには、OKEネットワーク・リソースの作成で説明されているワーカー・サブネットを持つサブネットにマウント・ターゲットを作成します。NFSサーバーへのTCPポート2049がそのサブネットで開いていることを確認します。
エクスポート・セットのOCIDおよびマウント・ターゲットのOCIDを書き留めます。エクスポート・セットのOCIDはファイル・システム・エクスポートを作成するために必要であり、マウント・ターゲットのOCIDは、後のステップでストレージ・クラスを作成するために必要です。
マウント・ターゲットは、VCN当たり1つのみ持つことができます。
-
ファイル・システムを作成します。
手順については、Creating a File Systemを参照してください。
VCN当たり1つのファイル・システムのみを作成できます。クラスタごとに複数のストレージクラス、永続ボリューム、および永続ボリューム要求を持つことができ、それらはすべて1つのNFSを共有します。
-
ファイル・システム・エクスポートを作成して、マウント・ターゲットをファイル・システムに関連付けます。
手順については、Creating an Export for a File Systemを参照してください。
-
マウント・ターゲットの作成からの出力からエクスポート・セットOCIDを指定します。
-
「ワーカー・サブネットの作成(Flannelオーバーレイ)」または「ワーカー・サブネットの作成(VCNネイティブ・ポッド)」の説明に従って、ワーカー・サブネットを作成したときに指定したCIDR範囲で最長のCIDR (最小ネットワーク)を指定します。
エクスポート・パスおよびマウント・ターゲットのIPアドレスを書き留めます。
-
-
マウント・ターゲットの作成ステップの出力からマウント・ターゲットのOCIDを指定して、ストレージ・クラスを作成します。
$ kubectl create -f sc.yamlsc.yamlファイルの内容を次に示します。kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: pca-fss provisioner: fss.csi.oraclecloud.com parameters: mntTargetId: ocid1.mounttarget.unique_IDapiVersionおよびprovisionerプロパティの値は標準です。メタデータ・セクションのストレージ・クラス名の値はユーザー指定です。マウント・ターゲットごとに複数のストレージ・クラスを作成でき、次のステップでストレージ・クラス名を使用して永続ボリュームおよび永続ボリューム要求を作成します。get scサブコマンドを使用して、新しい記憶域クラスに関する情報を表示します。$ kubectl get sc -
ストレージ・クラス名、エクスポート・パスおよびマウント・ターゲットのIPアドレスを指定して、永続ボリュームを作成します。
ストレージ・クラス名は、前のステップの
sc.yamlファイルのメタデータにあります。エクスポート・パスおよびマウント・ターゲットIPアドレスは、ファイル・システムの作成エクスポート・ステップから出力されます。ステップ3を参照してください。$ kubectl create -f pv.yamlpv.yamlファイルの内容を次に示します。apiVersion: v1 kind: PersistentVolume metadata: name: fss-pv spec: storageClassName: pca-fss capacity: storage: 200Gi accessModes: - ReadWriteMany mountOptions: - nosuid nfs: server: mount_target_IP_address path: "/export/unique_ID" readOnly: falsemetadataセクションの永続ボリューム名はユーザー指定です。1つのストレージ・クラスに複数の永続ボリュームを設定できます。nfsセクションでは、server値はマウント・ターゲットのIPアドレス、path値はエクスポート・パスです。get pvサブコマンドを使用して、新しい永続ボリュームに関する情報を表示します。$ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE fss-pv 200Gi RWX Retain Bound default/fss-pvc pca-fss 20h -
永続ボリューム名とストレージ・クラス名を指定して、永続ボリューム要求を作成します。
永続ボリューム名およびストレージ・クラス名は、
get pvコマンドの出力にあります。このストレージを使用する前に、PVCステータスが「Bound」になるまで待ちます。
kubectl create -f pvc.yamlpvc.yamlファイルの内容を次に示します。apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fss-pvc spec: storageClassName: pca-fss accessModes: - ReadWriteMany resources: requests: storage: 200Gi volumeName: fss-pvmetadataセクションの永続ボリューム要求名はユーザー指定です。1つの永続ボリュームに複数の永続ボリューム要求を設定できます。accessModesプロパティの値はReadWriteManyである必要があります。storageプロパティの値は、50GB以上である必要があります。次のコマンドを実行して、新しい永続ボリューム要求に関する情報を表示します。
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE fss-pvc Bound fss-pv 200Gi RWX pca-fss 2h -
ポッドなどの他のオブジェクトを作成するときに、PVCを使用します。
たとえば、次のポッドの定義から新しいポッドを作成できます。このポッド定義は、
fss-pvcPVCをnginxボリュームとして使用するようにシステムに指示します。このボリュームは、ポッドによって/persistent-storageにマウントされます。apiVersion: v1 kind: Pod metadata: name: fss-dynamic-app spec: containers: - name: nginx image: nginx:latest ports: - name: http containerPort: 80 volumeMounts: - name: persistent-storage mountPath: /usr/share/nginx/html volumes: - name: persistent-storage persistentVolumeClaim: claimName: fss-pvc次のコマンドを実行して、ポッドが新しいPVCを使用していることを確認します:
$ kubectl describe pod fss-dynamic-app