このタスクについて
注意: ストレージ・クラスはクラスター全体のリソースです。
手順
- タスクを完了するための十分な権限を持つユーザーとして Red Hat
OpenShift Container Platform にログインします。
${OC_LOGIN}
注意: OC_LOGIN は、oc login コマンドの別名です。
- 以下の環境変数を設定します。
NUTANIX_SECRET 環境変数を、Nutanix資格情報を含むシークレットに使用する名前に設定します。
export NUTANIX_SECRET=<secret-name>
CSI_DRIVER_NS 環境変数を、Nutanix CSI ドライバーをインストールしたプロジェクトに設定します。
export CSI_DRIVER_NS=<project-name>
NUTANIX_PE_CREDENTIALS 環境変数を Nutanix Prism Element 仮想 IP 資格情報に設定します。
資格情報の形式は次のとおりです。
PE-Virtual-IP:Port:UserName:Passwordexport NUTANIX_PE_CREDENTIALS=<credentials>
NUTANIX_FILE_SERVER_CREDENTIALS 環境変数を、ファイル・サーバーの REST API ユーザーの資格情報に設定します。ファイル・サーバーの資格情報は、以下のいずれかの形式で指定できます。
File-Server-FQDN:REST-API-Username:Password
File-Server-IP:REST-API-Username:Password
export NUTANIX_FILE_SERVER_CREDENTIALS=<credentials>
NUTANIX_NFS_SERVER_NAME 環境変数を、Nutanix ファイル・サーバーを識別するために使用する名前に設定します。
export NUTANIX_NFS_SERVER_NAME=<server-name>
NUTANIX_NFS_SERVER_LOCATION 環境変数を、Nutanix ファイル・サーバーの IP アドレスまたは完全修飾ドメイン・ネーム (FQDN) に設定します。
export NUTANIX_NFS_SERVER_LOCATION=<server-address>
NUTANIX_NFS_PATH 環境変数を、プロビジョナーがサブディレクトリーを作成するエクスポート・パスに設定します。
export NUTANIX_NFS_PATH=<path>
STORAGE_CONTAINER_NAME 環境変数を、ボリューム・データを保管するストレージ・コンテナーの名前に設定します。
default、または Nutanix のインストール時に作成したストレージ・コンテナーの名前を使用できます。
export STORAGE_CONTAINER_NAME=<name>
PE_UUID 環境変数を、ボリューム・ストレージをプロビジョンするNutanix Prism Element・クラスターの固有 ID に設定します。
ヒント: Nutanix CLI から以下のコマンドを実行して、UUID を取得できます。
ncli cluster info
export PE_UUID=<uuid>
- ファイル・サーバーおよび Nutanix Prism Elementに接続するための シークレット を作成します。
cat <<EOF |oc apply -f -
apiVersion: v1
kind: Secret
metadata:
name: ${NUTANIX_SECRET}
namespace: ${CSI_DRIVER_NS}
stringData:
key: "${NUTANIX_PE_CREDENTIALS}"
files-key: "${NUTANIX_FILE_SERVER_CREDENTIALS}"
EOF
- 必要な設定を使用してファイル・ストレージ・クラスを作成します。
以下のコマンドは、推奨されるストレージ・クラス名 nutanix-fileを使用します。
cat <<EOF |oc apply -f -
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: nutanix-file
provisioner: csi.nutanix.com
parameters:
dynamicProv: ENABLED
nfsServerName: ${NUTANIX_NFS_SERVER_NAME}
nfsServer: ${NUTANIX_NFS_SERVER_LOCATION}
nfsPath: ${NUTANIX_NFS_PATH}
csi.storage.k8s.io/controller-expand-secret-name: ${NUTANIX_SECRET}
csi.storage.k8s.io/controller-expand-secret-namespace: ${CSI_DRIVER_NS}
csi.storage.k8s.io/node-publish-secret-name: ${NUTANIX_SECRET}
csi.storage.k8s.io/node-publish-secret-namespace: ${CSI_DRIVER_NS}
csi.storage.k8s.io/provisioner-secret-name: ${NUTANIX_SECRET}
csi.storage.k8s.io/provisioner-secret-namespace: ${CSI_DRIVER_NS}
storageType: NutanixFiles
allowVolumeExpansion: true
reclaimPolicy: Retain
volumeBindingMode: Immediate
EOF
- 必要な設定を使用してブロック・ストレージ・クラスを作成します。
以下のコマンドは、推奨されるストレージ・クラス名 nutanix-volumeを使用します。
cat <<EOF |oc apply -f -
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: nutanix-volume
provisioner: csi.nutanix.com
parameters:
csi.storage.k8s.io/fstype: ext4
storageType: NutanixVolumes
computeAffinity: DISABLED
flashMode: DISABLED
storageContainer: ${STORAGE_CONTAINER_NAME}
prismElementRef: ${PE_UUID}
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
EOF
- ボリューム・スナップショット・ストレージ・クラスを作成します。
以下のコマンドは、推奨されるストレージ・クラス名 volumesnapshotclass-nutanixを使用します。
cat <<EOF |oc apply -f -
kind: VolumeSnapshotClass
apiVersion: storage.k8s.io/v1
driver: csi.nutanix.com
metadata:
name: volumesnapshotclass-nutanix
provisioner:
parameters:
csi.storage.k8s.io/snapshotter-secret-name: ${NUTANIX_SECRET}
csi.storage.k8s.io/snapshotter-secret-namespace: ${CSI_DRIVER_NS}
deletionPolicy: Retain
EOF