This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.3.5. 共有ボリュームへのデータの保存
メータリングはデフォルトでストレージを設定しません。ただし、メータリングストレージ用に ReadWriteMany 永続ボリューム (PV) または ReadWriteMany PV をプロビジョニングするすべてのストレージクラスを使用できます。
NFS を実稼働環境で使用することは推奨されません。RHEL の NFS サーバーをストレージバックエンドとして使用すると、メータリングの要件を満たせず、メータリング Operator が適切に機能するために必要なパフォーマンスを出せない可能性があります。
marketplace の他の NFS 実装にはこれらの問題が検出されない可能性があります (Parallel Network File System (pNFS) など)。pNFS は分散および並列機能を持つ NFS 実装です。OpenShift Container Platform コアコンポーネントに対して実施された可能性のあるテストに関する詳細情報は、個別の NFS 実装ベンダーにお問い合わせください。
手順
ストレージに ReadWriteMany 永続ボリュームを使用するには、
shared-storage.yamlファイルを変更します。shared-storage.yamlファイルの例apiVersion: metering.openshift.io/v1 kind: MeteringConfig metadata: name: "operator-metering" spec: storage: type: "hive" hive: type: "sharedPVC" sharedPVC: claimName: "metering-nfs" # Uncomment the lines below to provision a new PVC using the specified storageClass. # createPVC: true # storageClass: "my-nfs-storage-class" # size: 5GiapiVersion: metering.openshift.io/v1 kind: MeteringConfig metadata: name: "operator-metering" spec: storage: type: "hive" hive: type: "sharedPVC" sharedPVC: claimName: "metering-nfs"1 # Uncomment the lines below to provision a new PVC using the specified storageClass.2 # createPVC: true # storageClass: "my-nfs-storage-class" # size: 5GiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のいずれかの設定オプションを選択します。
- 1
storage.hive.sharedPVC.claimNameを既存の ReadWriteMany 永続ボリューム要求 (PVC) の名前に設定します。この設定は、動的ボリュームプロビジョニングがない場合や、永続ボリュームの作成方法をより詳細に制御する必要がある場合に必要です。- 2
storage.hive.sharedPVC.createPVCをtrueに設定し、storage.hive.sharedPVC.storageClassを ReadWriteMany アクセスモードのストレージクラスの名前に設定します。この設定は、動的ボリュームプロビジョニングを使用して、ボリュームを自動的に作成します。
メータリング用に NFS サーバーをデプロイするために必要な以下のリソースオブジェクトを作成します。
oc create -f <file-name>.yamlコマンドを使用してオブジェクト YAML ファイルを作成します。PersistentVolumeリソースオブジェクトを設定します。nfs_persistentvolume.yamlファイルの例apiVersion: v1 kind: PersistentVolume metadata: name: nfs labels: role: nfs-server spec: capacity: storage: 5Gi accessModes: - ReadWriteMany storageClassName: nfs-server nfs: path: "/" server: REPLACEME persistentVolumeReclaimPolicy: DeleteapiVersion: v1 kind: PersistentVolume metadata: name: nfs labels: role: nfs-server spec: capacity: storage: 5Gi accessModes: - ReadWriteMany storageClassName: nfs-server1 nfs: path: "/" server: REPLACEME persistentVolumeReclaimPolicy: DeleteCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
[kind: StorageClass].metadata.nameフィールドの値に一致する必要があります。
Podリソースオブジェクトをnfs-serverロールで設定します。nfs_server.yamlファイルの例apiVersion: v1 kind: Pod metadata: name: nfs-server labels: role: nfs-server spec: containers: - name: nfs-server image: <image_name> imagePullPolicy: IfNotPresent ports: - name: nfs containerPort: 2049 securityContext: privileged: true volumeMounts: - mountPath: "/mnt/data" name: local volumes: - name: local emptyDir: {}apiVersion: v1 kind: Pod metadata: name: nfs-server labels: role: nfs-server spec: containers: - name: nfs-server image: <image_name>1 imagePullPolicy: IfNotPresent ports: - name: nfs containerPort: 2049 securityContext: privileged: true volumeMounts: - mountPath: "/mnt/data" name: local volumes: - name: local emptyDir: {}Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- NFS サーバーイメージをインストールします。
Serviceリソースオブジェクトをnfs-serverロールで設定します。nfs_service.yamlファイルの例:apiVersion: v1 kind: Service metadata: name: nfs-service labels: role: nfs-server spec: ports: - name: 2049-tcp port: 2049 protocol: TCP targetPort: 2049 selector: role: nfs-server sessionAffinity: None type: ClusterIPapiVersion: v1 kind: Service metadata: name: nfs-service labels: role: nfs-server spec: ports: - name: 2049-tcp port: 2049 protocol: TCP targetPort: 2049 selector: role: nfs-server sessionAffinity: None type: ClusterIPCopy to Clipboard Copied! Toggle word wrap Toggle overflow StorageClassリソースオブジェクトを設定します。nfs_storageclass.yamlファイルの例apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: nfs-server provisioner: example.com/nfs parameters: archiveOnDelete: "false" reclaimPolicy: Delete volumeBindingMode: Immediate
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: nfs-server1 provisioner: example.com/nfs parameters: archiveOnDelete: "false" reclaimPolicy: Delete volumeBindingMode: ImmediateCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
[kind: PersistentVolume].spec.storageClassNameフィールドの値に一致する必要があります。
NFS ストレージおよび関連するリソースオブジェクトの設定は、メータリングストレージに使用する NFS サーバーイメージによって異なります。