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

    要允许 provisioner pod 删除任何 pod 创建的本地卷中的内容,需要 root 权限和任何 SELinux 上下文。hostPath 需要访问主机上的 /mnt/local-storage 路径。

  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_ACCOUNTNAMESPACEPROVISIONER_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
    提供 OpenShift Container Platform 版本号,如 v3.11
  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 的 DaemonSet。pod 监视 ConfigMap 中指定的目录,并为它们自动创建 PV。

置备程序以 root 权限运行,因为它会在 PV 被释放时从修改的目录中删除所有数据。