1.6. ベアメタルでの 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
ブロック PV の
LocalVolume
CR を作成します。$ oc create -f local-storage-block.yaml
Pod が作成されているかどうかを確認します。
出力例:
NAME READY local-block-local-diskmaker-cmfql 1/1 local-block-local-diskmaker-g6fzr 1/1 local-block-local-diskmaker-jkqxt 1/1 local-block-local-provisioner-jgqcc 1/1 local-block-local-provisioner-mx49d 1/1 local-block-local-provisioner-qbcvp 1/1 local-storage-operator-54bc7566c6-ddbrt 1/1 STATUS RESTARTS AGE Running 0 31s Running 0 31s Running 0 31s Running 0 31s Running 0 31s Running 0 31s Running 0 12m
PV が作成されているかどうかを確認します。
$ oc get pv
出力例:
NAME CAPACITY ACCESS MODES RECLAIM POLICY local-pv-150fdc87 931Gi RWO Delete local-pv-183bfc0a 931Gi RWO Delete local-pv-b2f5cb25 931Gi RWO Delete STATUS CLAIM STORAGECLASS REASON AGE Available localblock 2m11s Available localblock 2m15s 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
Storage Class を使用する OpenShift Container Storage Cluster Service を作成します。- OpenShift Web コンソールにログインします。
- OpenShift Web コンソールから Operators → Installed Operators をクリックし、インストールされた Operator を表示します。選択された Project が openshift-storage であることを確認します。
Installed Operators ページで、Openshift Container Storage をクリックします。
図1.3 OpenShift Container Storage Operator ページ
Installed Operators → Operator Details ページで、以下のいずれかを実行して Storage Cluster Service を作成します。
Details タブで Provided APIs → OCS Storage Cluster で、Create Instance をクリックします。
図1.4 Operator Details ページ
または、Storage cluster タブを選択し、Create OCS Cluster Service をクリックします。
図1.5 Storage Cluster タブ
Create Storage Cluster ページで、以下のオプションが選択されていることを確認します。
- Select Mode を Internal のままにします。
Nodes セクションでは、OpenShift Container Storage サービスを使用するには、利用可能な一覧から 3 つ以上のワーカーノードを選択します。
高可用性を確保するために、ワーカーノードは 3 つの異なる物理ノード、ラック、障害ドメインに分散することが推奨されます。
注記クラスターで特定のワーカーノードを見つけるには、Name または Label に基づいてノードをフィルターできます。
- Name では、ノード名で検索できます。
- Label では、事前に定義されたラベルを選択して検索できます。
- OpenShift Container Storage のラックラベルがデータセンターの物理ラックに合わせて調整されていることを確認し、障害ドメインのレベルで二重ノードに障害が発生しないようにします。
ノードの最小要件については、『プランニング』ガイドの「リソース要件」セクションを参照してください。
- Storage Class ドロップダウンリストから localblock を選択します。
Create をクリックします。
注記Create ボタンは、最低でも 3 つのワーカーノードを選択した後にのみ有効になります。
デプロイメントに成功すると、3 つのストレージデバイスを持つストレージクラスターが作成されます。これらのデバイスは、選択したノードの 3 つに分散されます。この設定では、3 のレプリケーション係数が使用されます。初期クラスターをスケーリングするには、「 ストレージノードのスケーリング 」を参照してください。
検証手順
OpenShift Container Storage インストールの検証について参照してください。