Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

26.4. ローカルプロビジョナーのデプロイ

注記

プロビジョナーを起動する前に、すべてのローカルデバイスをマウントし、ストレージクラスとそれらのディレクトリーと共に ConfigMap を作成します。

ローカルプロビジョナーをデプロイします。

  1. local-storage-provisioner-template.yaml ファイルからローカルプロビジョナーをインストールします。
  2. サービスアカウントを作成して、root ユーザーでの Pod 実行、hostPath ボリュームの使用をはじめ、SELinux コンテキストでローカルボリュームの監視、管理、消去ができるようにします。

    $ oc create serviceaccount local-storage-admin
    $ oc adm policy add-scc-to-user privileged -z local-storage-admin

    プロビジョナー Pod で任意の Pod が作成したローカルボリュームのコンテンツを削除できるようにするには、root 権限と任意の SELinux コンテキストが必要です。 ホスト上の /mnt/local-storage パスにアクセスするには hostPath が必要です。

  3. テンプレートをインストールします。

    $ oc create -f https://raw.githubusercontent.com/openshift/origin/release-3.11/examples/storage-examples/local-examples/local-storage-provisioner-template.yaml
  4. CONFIGMAPSERVICE_ACCOUNT, NAMESPACE および PROVISIONER_IMAGE パラメーターに値を指定して、テンプレートをインスタンス化します。

    $ oc new-app -p CONFIGMAP=local-volume-config \
      -p SERVICE_ACCOUNT=local-storage-admin \
      -p NAMESPACE=local-storage \
      -p PROVISIONER_IMAGE=registry.redhat.io/openshift3/local-storage-provisioner:v3.11 \ 1
      local-storage-provisioner
    1
    v3.11 など、お使いの OpenShift Container Platform バージョン番号を指定します。
  5. 必要なストレージクラスを追加します。

    $ oc create -f ./storage-class-ssd.yaml
    $ oc create -f ./storage-class-hdd.yaml

    以下に例を示します。

    storage-class-ssd.yaml

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
     name: local-ssd
    provisioner: kubernetes.io/no-provisioner
    volumeBindingMode: WaitForFirstConsumer

    storage-class-hdd.yaml

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
     name: local-hdd
    provisioner: kubernetes.io/no-provisioner
    volumeBindingMode: WaitForFirstConsumer

その他の設定オプションについては、ローカルストレージプロビジョナーのテンプレート を参照してください。このテンプレートは、すべてのノードで Pod を実行する DeamonSet を作成します。Pod は ConfigMap に指定されるディレクトリーを監視し、それらの PV を自動的に作成します。

このプロビジョナーは、PV が開放されると、変更されたディレクトリーからすべてのデータが削除されるので、Root パーミッションを使用して実行します。