既存のファイル・システムを使用した永続ファイル・システム・ストレージの作成
このプロシージャは、既存のファイル・システムにPVCをプロビジョニングします。 Private Cloud Applianceにマウント・ターゲット、ファイル・システムおよびファイル・システムのエクスポートを作成します。 次に、kubectl
コマンドを使用して、ストレージ・クラス、永続ボリュームおよび永続ボリューム要求を作成します。
-
マウント・ターゲットを作成します。
重要:
ワーカー・ノードからマウント・ターゲットに到達できるようにするには、「OKEネットワーク・リソースの作成」で説明されているworkerサブネットのような構成を持つサブネットにマウント・ターゲットを作成します。 NFSサーバーへのTCPポート2049が、そのサブネット上で開いていることを確認します。
「Oracle Private Cloud Applianceユーザー・ガイド」の「ファイル・システム・ストレージ」の章のマウント・ターゲットの作成に関する項および「Oracle Private Cloud Appliance概要ガイド」の「ファイル・ストレージの概要」の章の「ファイル・ストレージ・ネットワーク・ポート」に関する項を参照してください。
エクスポート・セットのOCIDおよびマウント・ターゲットのOCIDに注意してください。 ファイル・システム・エクスポートを作成するにはエクスポート・セットOCIDが必要であり、ストレージ・クラスの作成にはマウント・ターゲットOCIDが必要です。 ステップ3と4を参照してください。
VCNごとにマウント・ターゲットを1つのみ持つことができます。
-
ファイル・システムを作成します。
「Oracle Private Cloud Applianceユーザーズ・ガイド」の「ファイル・システム・ストレージ」の章の「ファイル・システムの作成」に関する項を参照してください。
VCNごとに作成できるファイル・システムは1つのみです。 クラスタごとに複数のストレージ・クラス、永続ボリューム、および永続ボリューム要求を持つことができ、それらはすべて1つのNFSを共有します。
-
ファイル・システム・エクスポートを作成して、マウント・ターゲットをファイル・システムに関連付けます。
「Oracle Private Cloud Applianceユーザーズ・ガイド」の「ファイル・システム・ストレージ」の章の「ファイル・システムのエクスポートの作成」に関する項を参照してください。
-
マウント・ターゲットの作成からの出力からエクスポート・セットOCIDを指定します。
-
「OKEネットワーク・リソースの作成」の説明に従って、workerサブネットの作成時に指定したCIDR範囲内で最長のCIDR (最小ネットワーク)を指定します。
エクスポート・パスとマウント・ターゲットのIPアドレスを書き留めます。
-
-
ストレージ・クラスを作成し、マウント・ターゲットの作成ステップの出力からマウント・ターゲットOCIDを指定します。
$ kubectl create -f sc.yaml
次に、
sc.yaml
ファイルの内容を示します:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: pca-fss provisioner: fss.csi.oraclecloud.com parameters: mntTargetId: ocid1.mounttarget.unique_ID
apiVersion
およびprovisioner
プロパティの値は標準です。 メタデータ・セクションのストレージ・クラス名の値は、ユーザー指定です。 マウント・ターゲットごとに複数のストレージ・クラスを作成でき、次のステップでストレージ・クラス名を使用して永続ボリュームおよび永続ボリューム要求を作成します。get sc
サブコマンドを使用して、新しいストレージ・クラスの情報を表示します:$ kubectl get sc
-
ストレージ・クラス名、エクスポート・パスおよびマウント・ターゲットのIPアドレスを指定して、永続ボリュームを作成します。
ストレージ・クラス名は、前のステップの
sc.yaml
ファイルのメタデータにあります。 エクスポート・パスおよびマウント・ターゲットのIPアドレスは、ファイル・システムの作成エクスポート・ステップから出力されます。 前述のステップ3を参照してください。$ kubectl create -f pv.yaml
次に、
pv.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: false
metadata
セクションの永続ボリューム名は、ユーザー指定です。 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ステータスが「バウンド」になるのを待ちます。
kubectl create -f pvc.yaml
次に、
pvc.yaml
ファイルの内容を示します:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fss-pvc spec: storageClassName: pca-fss accessModes: - ReadWriteMany resources: requests: storage: 200Gi volumeName: fss-pv
metadata
セクションの永続ボリューム要求名は、ユーザー指定です。 永続ボリュームに対して複数の永続ボリューム要求を設定できます。accessModes
プロパティの値は、ReadWriteMany
である必要があります。storage
プロパティの値は、50ギガバイト以上である必要があります。次のコマンドを実行して、新しい永続ボリューム要求に関する情報を表示します:
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE fss-pvc Bound fss-pv 200Gi RWX pca-fss 2h
-
ポッドなどの他のオブジェクトを作成する場合、PVCを使用します。
たとえば、次のポッド定義から新しいポッドを作成し、
fss-pvc
PVCを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