2.7. ベアメタルでの OpenShift Container Storage クラスターの作成
前提条件
- ローカルストレージデバイスを使用した OpenShift Container Storage のインストールの要件に記載されるすべての要件を満たしていることを確認します。
- ベアメタルでローカルストレージデバイスを使用するために、同じストレージタイプおよびサイズが各ノードに割り当てられた 3 つのワーカーノードが必要です (例: 2TB NVMe ハードドライブ)。
OpenShift Container Platform ワーカーノードに OpenShift Contaner Storage ラベルを付けられていることを確認します。
$ oc get nodes -l cluster.ocs.openshift.io/openshift-storage -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}'
各ノードでストレージデバイスを特定するには、利用可能なストレージデバイスの検索について参照してください。
手順
ブロック PV の
LocalVolume
CR を作成します。OCS ラベルをノードセレクターとして使用する
LocalVolume
CRlocal-storage-block.yaml
の例。apiVersion: local.storage.openshift.io/v1 kind: LocalVolume metadata: name: local-block namespace: local-storage labels: app: ocs-storagecluster spec: nodeSelector: nodeSelectorTerms: - matchExpressions: - key: cluster.ocs.openshift.io/openshift-storage operator: In values: - "" storageClassDevices: - storageClassName: localblock volumeMode: Block devicePaths: - /dev/disk/by-id/nvme-INTEL_SSDPEKKA128G7_BTPY81260978128A # <-- modify this line - /dev/disk/by-id/nvme-INTEL_SSDPEKKA128G7_BTPY80440W5U128A # <-- modify this line - /dev/disk/by-id/nvme-INTEL_SSDPEKKA128G7_BTPYB85AABDE128A # <-- modify this line - /dev/disk/by-id/nvme-INTEL_SSDPEKKA128G7_BTPY0A60CB81128A # <-- modify this line - /dev/disk/by-id/nvme-INTEL_SSDPEKKA128G7_BTPY0093D45E128A # <-- modify this line - /dev/disk/by-id/nvme-INTEL_SSDPEKKA128G7_BTPYE46F6060128A # <-- modify this line
ブロック PV の
LocalVolume
CR を作成します。$ oc create -f local-storage-block.yaml
Pod が作成されているかどうかを確認します。
$ oc -n local-storage get pods
PV が作成されているかどうかを確認します。
$ oc get pv
出力例:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE local-pv-150fdc87 2Ti RWO Delete Available localblock 2m11s local-pv-183bfc0a 2Ti RWO Delete Available localblock 2m11s local-pv-b2f5cb25 2Ti RWO Delete Available localblock 2m21s
新規
localblock
StorageClass
を確認します。$ oc get sc|egrep -e "localblock|NAME"
出力例:
NAME PROVISIONER RECLAIMPOLICY localblock kubernetes.io/no-provisioner Delete VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE WaitForFirstConsumer false 4d23h
-
localblock
StorageClass と作成された 3 つの PV を使用するStorageCluster
CR を作成します。 monDataDirHostPath
およびlocalblock
StorageClass を使用したStorageCluster
CRcluster-service-metal.yaml
の例。apiVersion: ocs.openshift.io/v1 kind: StorageCluster metadata: name: ocs-storagecluster namespace: openshift-storage spec: manageNodes: false monDataDirHostPath: /var/lib/rook storageDeviceSets: - count: 2 dataPVCTemplate: spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Ti storageClassName: localblock volumeMode: Block name: ocs-deviceset placement: {} portable: false replica: 3 resources: {}
重要OSD にノード間で保証されたサイズを確保するには、
storageDeviceSets
のストレージサイズを、ノード上に作成された必要な PV のサイズ以下に指定する必要があります。StorageCluster
CR を作成します。$ oc create -f cluster-service-metal.yaml
出力例:
storagecluster.ocs.openshift.io/ocs-storagecluster created
検証手順
OpenShift Container Storage デプロイメントの検証について参照してください。