IBM Cloud Docs
本地存储器操作程序 - 文件

本地存储器操作程序 - 文件

为 IBM Cloud Satellite® clusters.You 设置 使用本地卷的持久存储器 可以使用 Satellite 存储器模板来创建存储器配置。 将存储器配置分配给集群时,所选存储器提供者的存储器驱动程序将安装在集群中。

创建本地文件存储器配置时,指定要作为集群中的持久卷 (PV) 提供的本地存储设备。 将存储配置分配给集群后,Satellite 将部署本地存储操作程序,该操作程序将安装您在配置中指定的本地磁盘。 操作员进一步创建具有您指定的文件系统类型的持久卷,并创建可用于创建持久卷声明 (PVC) 的 sat-local-file-gold 存储类。 然后,可以在 Kubernetes 工作负载中引用 PVC。

在可以将存储器模板部署到您所在位置的集群之前,请确保通过在控制台中选择 对 Satellite Config 启用集群管理访问权 选项或者在创建集群时包含 --enable-config-admin 选项来设置 Satellite 配置。

不能将 Satellite 存储服务的作用域限定为资源组。 但是,如果要将其他资源 (例如,位置和集群) 限定为资源组,那么需要为帐户中的所有资源添加 Satellite 阅读器和链接管理员角色。

本地文件存储器的先决条件

必须先识别集群中具有所需可用磁盘的工作程序节点,然后才能创建本地文件存储器配置。 然后,对这些工作程序节点进行标签,以便仅在这些工作程序节点上安装本地存储驱动程序。

  1. 创建 Satellite 位置

  2. 如果您的位置中没有任何集群,请 创建 Red Hat OpenShift on IBM Cloud 集群将现有 Red Hat OpenShift on IBM Cloud 集群连接到您的位置。 确保集群中要在存储配置中使用的工作程序节点除了具有 Satellite所需的磁盘外,还具有至少一个可用的本地磁盘。 额外磁盘必须无格式。

  3. 获取工作程序节点的设备详细信息

  4. 标注具有可用磁盘且要在配置中使用的工作程序节点。 本地存储驱动程序仅安装在标注的工作程序节点上。

获取本地文件存储器配置的设备详细信息

创建文件存储器配置时,必须指定要使用的设备。 在以下步骤中检索的设备路径在创建配置时指定为参数。

  1. 登录到集群并获取可用工作程序节点的列表。 记下要在配置中使用的工作程序节点。

    oc get nodes
    
  2. 登录到要用于本地存储器配置的每个工作程序节点。

    oc debug node/<node-name>
    
  3. 在工作程序节点上部署调试 pod 时,运行以下命令以列出工作程序节点上的可用磁盘。

    1. 允许主机二进制文件。

      chroot /host
      
    2. 列出您的设备。

      lsblk
      
    3. 获取设备的详细信息。 验证要使用的设备是否已卸载且未格式化。

      fdisk -l
      
  4. 查看可用磁盘的命令输出。 必须将已卸载的磁盘用于本地存储器配置。 在 lsblk 命令的以下示例输出中,xvdc 磁盘已卸载并且没有分区。

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0  100G  0 disk
    |-xvda1 202:1    0    1G  0 part /boot
    `-xvda2 202:2    0   99G  0 part /
    xvdb    202:16   0    2G  0 disk
    `-xvdb1 202:17   0    2G  0 part
    xvdc    202:32   0   100G  0 disk
    xvde    202:64   0   50G  0 disk /var/data
    xvdh    202:112  0   64M  0 disk
    
  5. 对要用于本地文件存储器配置的每个工作程序节点重复上述步骤。

使用本地文件存储器时标注工作程序节点

检索要在配置中使用的磁盘的设备路径 之后,请标注磁盘所在的工作程序节点。

  1. 获取工作程序节点 IP 地址。

    oc get nodes
    
  2. 标注先前检索到的工作程序节点。 本地存储驱动程序将使用此标签部署到工作程序节点。 您可以在示例命令中使用 storage=local-file 标签,也可以使用 key=value 格式创建自己的标签。

    oc label nodes <worker-IP> <worker-IP> "storage=local-file"
    

    示例输出

    node/<worker-IP> labeled
    node/<worker-IP> labeled
    
  3. 验证是否已将标签添加到要使用的工作程序节点。 运行以下命令以显示工作程序节点上的标签,并突出显示您在上一步中添加的标签。

    oc get nodes --show-labels | grep --color=always storage=local-file
    

在控制台中创建和分配配置

  1. 查看 参数参考

  2. 从 "位置" 控制台,选择要在其中创建存储配置的位置。

  3. 选择 存储器 > 创建存储器配置

  4. 输入配置名称。

  5. 选择存储类型

  6. 选择版本并单击下一步

  7. 如果您选择的 存储器类型 接受定制参数,请在 参数 选项卡上输入这些参数。

  8. 如果您选择的 存储器类型 需要私钥,请在 私钥 选项卡上输入私钥。

  9. 存储类 选项卡上,查看配置所部署的存储类或创建定制存储类。

  10. 分配给服务 选项卡上,选择要将配置分配给的服务。

  11. 单击 完成 以分配存储器配置。

在 CLI 中创建配置

  1. 查看要使用的模板版本的 参数参考

  2. 登录到 IBM Cloud CLI。

    ibmcloud login
    
  3. 列出 Satellite 位置并记下 Managed from 列。

    ibmcloud sat location ls
    
  4. 将 Satellite 位置的 Managed from 区域作为目标。 例如,对于 wdc target us-east。 有关更多信息,请参阅 Satellite 区域

    ibmcloud target -r us-east
    
  5. 如果使用除 default 以外的资源组,请将其作为目标。

    ibmcloud target -g <resource-group>
    
  6. 针对要使用的模板版本,复制以下某个示例命令。 有关该命令的更多信息,请参阅 命令参考 中的 ibmcloud sat storage config create

    用于创建 V 4.9 配置的示例命令。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.9 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  [--param "devicepath=DEVICEPATH"]  --param "fstype=FSTYPE"
    

    用于创建 V 4.10 配置的示例命令。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.10 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  [--param "devicepath=DEVICEPATH"]  --param "fstype=FSTYPE"
    

    用于创建 V 4.11 配置的示例命令。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.11 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  [--param "devicepath=DEVICEPATH"]  --param "fstype=FSTYPE"
    

    用于创建 V 4.12 配置的示例命令。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.12 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  [--param "devicepath=DEVICEPATH"]  --param "fstype=FSTYPE"
    

    用于创建 V 4.13 配置的示例命令。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-file --template-version 4.13 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  [--param "devicepath=DEVICEPATH"]  --param "fstype=FSTYPE"
    
  7. 根据要使用的设置定制命令。

  8. 运行命令创建配置。

  9. 验证是否已创建配置。

    ibmcloud sat storage config get --config CONFIG
    

在 API 中创建配置

  1. 生成 API 密钥,然后请求刷新令牌。 有关详细信息,请参阅 使用 API 密钥生成IBM CloudIAM 令牌

  2. 查看要使用的模板版本的 参数参考

  3. 复制以下某个示例请求并替换要使用的变量。

    用于创建 V 4.9 配置的示例请求。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-file\", \"storage-template-version\": \"4.9\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }
    

    用于创建 V 4.10 配置的示例请求。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-file\", \"storage-template-version\": \"4.10\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }
    

    用于创建 V 4.11 配置的示例请求。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-file\", \"storage-template-version\": \"4.11\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }
    

    用于创建 V 4.12 配置的示例请求。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-file\", \"storage-template-version\": \"4.12\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }
    

    用于创建 V 4.13 配置的示例请求。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-file\", \"storage-template-version\": \"4.13\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\", { \"entry.name\": \"FSTYPE\",\"user-secret-parameters\": }
    

在 CLI 中创建任务

  1. 列出存储配置,并记下要分配给集群的存储配置。

    ibmcloud sat storage config ls
    
  2. 获取要向其分配存储器的集群,集群组或服务的标识。

    要确保集群已向 Satellite 配置注册或要创建组,请参阅 设置集群以与 Satellite 配置配合使用

    用于列出集群组的示例命令。

    ibmcloud sat group ls
    

    用于列出集群的示例命令。

    ibmcloud oc cluster ls --provider satellite
    

    用于列出 Satellite 服务的示例命令。

    ibmcloud sat service ls --location <location>
    
  3. 将存储器配置分配给先前检索的集群,组或服务。 有关更多信息,请参阅 ibmcloud sat storage assignment create 命令

    用于将配置分配给集群组的示例命令。

    ibmcloud sat storage assignment create --group GROUP --config CONFIG --name NAME
    

    用于将配置分配给集群的示例命令。

    ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAME
    

    用于将配置分配给服务集群的示例命令。

    ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME
    
  4. 确认任务已创建。

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    

在 API 中创建存储器分配

  1. 复制以下某个示例请求。

    用于将 配置分配给集群的示例请求。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignmentByCluster" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"CLUSTER-ID\", \"controller\": \"LOCATION-ID\", \"name\": \"ASSIGNMENT-NAME\"}"
    

    请求 将配置分配给集群组的示例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"string\", \"groups\": [ \"CLUSTER-GROUP\" ], \"name\": \"ASSIGNMENT-NAME\"}"
    
  2. 将变量替换为详细信息并运行请求。

  3. 通过列出分配来验证是否已创建分配。

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

在控制台中更新存储器分配

您可以使用 Satellite 控制台 对分配应用最新补丁更新。

  1. Satellite 控制台中的“位置”页面,选择您的位置。

  2. 单击 存储器 选项卡以查看配置。

  3. 单击要更新的配置。

  4. 单击信息 信息 (i) 图标以应用最新修订版或补丁。

  5. 可选: 为存储器分配启用自动补丁更新。 启用自动补丁更新可确保分配始终具有最新的安全修订。

如果启用自动补丁更新,那么仍必须手动应用主要更新。

在 CLI 中手动升级分配

升级分配以使用最新的存储器模板修订版。

  1. 列出 Satellite 存储分配,记录要升级的 Satellite 分配。

    ibmcloud sat storage assignment ls
    
  2. 列出 Satellite 存储模板以查看最新的可用版本。

    ibmcloud sat storage template ls
    
  3. 升级 Satellite 分配。

    用于升级分配的示例命令。

    ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
    

在 CLI 中为配置和分配启用自动补丁更新

您可以使用 sat storage assignment autopatch enable CLI 为分配启用自动补丁更新。 启用自动补丁更新将自动应用最新的存储模板修订 (补丁)。 您仍必须手动应用主要更新。

  1. 列出 Satellite 存储配置。 记下配置 ID。

    ibmcloud sat storage assignment ls
    
  2. 运行以下某个示例命令以对配置及其关联的分配启用自动补丁更新。 输入您在上一步中获取的配置 ID。

    用于对分配启用自动补丁更新的示例命令。

    ibmcloud sat storage assignment autopatch enable --config CONFIG  (--all | --assignment ASSIGNMENT-ID [--assignment ASSIGNMENT-ID])
    

    用于对给定配置下的所有存储器分配启用自动补丁更新的示例命令。

    ibmcloud sat storage assignment autopatch enable --config CONFIG --all
    

    用于禁用特定配置下所有分配的自动补丁更新的示例命令。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --all
    

    用于禁用单个分配和特定配置的自动补丁更新的示例命令。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID
    

    用于对多个分配和特定配置禁用自动补丁更新的示例命令。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID --assignment ASSIGNMENT-ID
    

在 CLI 中手动升级配置

您可以升级 Satellite 存储配置,以获取同一主版本中的最新存储模板修订版。

  1. 列出 Satellite 存储配置,记录要升级的 Satellite 配置。

    ibmcloud sat storage config ls
    
  2. 升级Satellite配置。 请注意,仅更新配置。 如果要升级使用此配置的分配,可以指定 --include-assignments 选项,也可以使用 assignment update 命令手动更新每个分配。

    用于将配置升级到最新修订版的示例命令。

    ibmcloud sat storage config upgrade --config CONFIG [--include-assignments]
    

    用于将配置及其关联的分配升级到最新修订版的示例命令。

    ibmcloud sat storage config upgrade --config CONFIG --include-assignments
    

在 API 中升级配置和分配

您可以使用 /v2/storage/satellite/updateAssignment API 通过新的集群或集群组更新分配。 将 updateConfigVersion 设置为 true 以应用修订更新。

  1. 复制以下示例请求,并替换要更新的集群组和分配的变量。

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/updateAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"groups\": [ \"CLUSTER-GROUPS\" ], \"name\": \"ASSIGNMENT-NAME\", \"updateConfigVersion\": true, \"uuid\": \"ASSIGNMENT-ID\"}"
    
  2. 运行请求。

  3. 获取分配的详细信息以验证更新。

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

在 API 中为分配启用自动补丁更新

您可以使用 /v2/storage/satellite/setAssignmentAutoupgrade API 为分配启用自动补丁更新。 启用自动补丁更新将自动应用最新的存储模板修订 (补丁)。 您仍必须手动应用主要更新。

  1. 复制以下示例请求,并替换要更新的集群组和分配的变量。

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/setAssignmentAutoupgrade" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d { "config": "string", "controller": "string", "autopatch": boolean,"assignment" : { "all": boolean, "uuid": ["string", "string", ...], } }
    
  2. 运行请求。

  3. 获取分配的详细信息以验证升级。

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    
  4. 验证是否已部署存储配置资源。 获取 local-storage 名称空间中所有资源的列表。

    oc get all -n local-storage
    

    示例输出

    NAME                                         READY   STATUS    RESTARTS   AGE
    pod/local-disk-local-diskmaker-cpk4r         1/1     Running   0          30s
    pod/local-disk-local-provisioner-xstjh       1/1     Running   0          30s
    pod/local-storage-operator-96c444dfc-ttpmq   1/1     Running   0          35s
    
    NAME                             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)     AGE
    service/local-storage-operator   ClusterIP   172.21.173.238   <none>        60000/TCP   32s
    
    NAME                                          DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/local-disk-local-diskmaker     1         1         1       1            1           <none>          31s
    daemonset.apps/local-disk-local-provisioner   1         1         1       1            1           <none>          31s
    
    NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/local-storage-operator   1/1     1            1           36s
    
    NAME                                               DESIRED   CURRENT   READY   AGE
    replicaset.apps/local-storage-operator-96c444dfc   1         1         1       37s
    
  5. 列出可用的存储类。

    oc get sc -n local-storage | grep local
    

    示例输出

    sat-local-file-gold       kubernetes.io/no-provisioner   Delete          WaitForFirstConsumer   false                  21m
    
  6. 列出 PV 并验证状态是否为 Available。 创建配置时指定的本地磁盘可用作持久卷。

    oc get pv
    

    示例输出

    NAME               CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS          REASON   AGE
    local-pv-1d14680   50Gi       RWO            Delete           Available           sat-local-file-gold            50s
    
  7. 创建引用本地 PV 的 PVC,然后部署使用本地存储器的应用程序

部署使用本地文件存储器的应用程序

创建本地文件存储器配置并将其分配给集群后,可以创建使用本地文件存储器的应用程序。

您可以通过向持久卷添加标签将 PVC 映射到特定持久卷。 有关更多信息,请参阅 选择器的Kubernetes 文档

  1. 将以下 YAML 保存到本地机器上名为 local-pvc.yaml 的文件。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: local-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      volumeMode: Filesystem
      resources:
        requests:
          storage: 20Gi # Important: Ensure that size of your claim is not larger than the local disk.
      storageClassName: sat-local-file-gold
    
  2. 在集群中创建 PVC。

    oc create -f local-pvc.yaml
    
  3. 确认已创建 PVC。

    oc get pvc | grep local
    

    要确保将 pod 安排到具有存储器的工作程序节点,或者确保需要存储器的应用程序未被其他 pod 抢占,您可以指定 nodeAffinity 并设置 pod 优先级。 有关更多信息,请参阅 Kubernetes 文档以了解 pod 优先级和抢占 以及设置 节点亲缘关系

  4. 部署使用本地存储器 PVC 的应用程序 pod。 将以下示例应用程序 YAML 另存为本地机器上名为 app.yaml 的文件。 此 pod 将日期写入名为 test.txt 的文件。 请务必输入您之前创建的 PVC 名称。 在此示例中,nodeAffinity 规范确保仅将此 pod 调度到具有指定标签的工作程序节点。

    apiVersion: v1
    kind: Pod
    metadata:
      name: app
    spec:
      affinity: null
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
            - matchExpressions:
                - key: storage
                  operator: In
                  values:
                    - local-file
      volumes:
        - name: local-pvc
          persistentVolumeClaim:
            claimName: local-pvc
      containers:
        - name: local-disks
          image: nginx
          ports:
            - containerPort: 80
              name: http-server
          volumeMounts:
            - mountPath: <mount-path-to-local-disk>
              name: local-pvc
    
  5. 在集群中创建应用程序 pod。

    oc create -f app.yaml
    
  6. 登录到应用程序 pod 并验证您是否可以写入本地磁盘。

    kubectl exec <app-pod> -it bash
    
  7. 运行以下命令以将目录切换到本地磁盘的位置,写入 test.txt 文件并显示该文件的内容。

    cd /<mount-path-to-local-disk> && echo "This is a test." >> test.txt && cat test.txt
    

    示例输出

    This is a test.
    
  8. 除去测试文件并从 pod 注销。

    rm test.txt && exit
    

从集群中除去本地文件存储器配置

如果不再计划在集群中使用本地文件存储器,那么可以从存储器配置中取消分配集群。

请注意,如果除去存储器配置,那么将从所有分配的集群中卸载本地存储器操作程序资源和 sat-local-file-gold 存储类。 不会除去 PVC,PV 和数据。 但是,在重新将驱动程序安装到集群中之前,您可能无法访问数据。

从控制台中除去本地文件存储器配置

使用控制台来除去存储器配置。

  1. 从 Satellite 存储仪表板中,选择要删除的存储配置。
  2. 选择 操作 > 删除
  3. 输入存储器配置的名称。
  4. 选择删除

从命令行中除去本地文件存储器配置

  1. 列出 local-storage 名称空间中的资源。 删除存储器分配时,将除去这些资源。

    oc get all -n local-storage
    

    示例输出

    NAME                                         READY   STATUS    RESTARTS   AGE
    pod/local-disk-local-diskmaker-clvg6         1/1     Running   0          29h
    pod/local-disk-local-diskmaker-kqddq         1/1     Running   0          29h
    pod/local-disk-local-diskmaker-p6z9q         1/1     Running   0          29h
    pod/local-disk-local-provisioner-dw5g7       1/1     Running   0          29h
    pod/local-disk-local-provisioner-hxd9n       1/1     Running   0          29h
    pod/local-disk-local-provisioner-tfg95       1/1     Running   0          29h
    pod/local-storage-operator-df4994656-7826l   1/1     Running   0          29h
    
    NAME                             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)     AGE
    service/local-storage-operator   ClusterIP   172.21.147.17   <none>        60000/TCP   29h
    
    NAME                                          DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/local-disk-local-diskmaker     3         3         3       3            3           <none>          29h
    daemonset.apps/local-disk-local-provisioner   3         3         3       3            3           <none>          29h
    
    NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/local-storage-operator   1/1     1            1           29h
    
    NAME                                               DESIRED   CURRENT   READY   AGE
    replicaset.apps/local-storage-operator-df4994656   1         1         1       29h
    
  2. 列出存储器分配并查找用于集群的存储分配。

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    
  3. 除去分配。 除去分配后,将从属于存储分配的所有集群中除去本地存储驱动程序 pod 和存储类。

    ibmcloud sat storage assignment rm --assignment <assignment_ID>
    
  4. 列出 local-storage 名称空间中的资源,并验证是否已除去本地存储驱动程序 pod。

    oc get all -n local-storage
    

    示例输出

    No resources found in local-storage namespace.
    
  5. 列出集群中的存储类,并验证是否已除去本地存储类。

    oc get sc
    
  6. 可选: 除去存储器配置。

    1. 列出存储配置。
      ibmcloud sat storage config ls
      
    2. 除去存储器配置。
      ibmcloud sat storage config rm --config <config_name>
      
  7. 列出 PVC 并记下要除去的 PVC 的名称。

    oc get pvc
    
  8. 移除目前安装 PVC 的任何 pod。

    1. 列出当前安装要删除的 PVC 的所有 pod。 如果未返回任何 pod,那么您当前没有任何使用 PVC 的 pod。

      oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
      

      示例输出

      app    sat-local-file-gold
      
    2. 除去使用 PVC 的 pod。 如果 pod 是部署的一部分,请除去该部署。

      oc delete pod <pod_name>
      
      oc delete deployment <deployment-name>
      
    3. 验证是否已除去 pod 或部署。

      oc get pods
      
      oc get deployments
      
  9. 删除 PVC。 由于使用 Retain 回收策略指定所有 IBM提供的本地文件存储类,因此在删除应用程序或部署时不会自动删除 PV 和 PVC。

    oc delete pvc <pvc-name>
    
  10. 确认您的 PVC 已移除。

oc get pvc
  1. 列出 PV 并记下要除去的 PV 的名称。
oc get pv
  1. 删除 PV。 删除 PV 将使磁盘可用于其他工作负载。
oc delete pv <pv-name>
  1. 验证您的 PV 是否已移除。
oc get pv

参数参考

4.9 参数参考

4.4.9参数参考
显示名称 CLI 选项 Type 描述 必需? 缺省值
自动存储卷发现 auto-discover-devices 配置 如果要自动发现和使用工作节点上的存储卷,请设置为 true false
节点标签键 label-key 配置 The key of the worker node key=value label. 不适用
节点标签键值 label-value 配置 The value of the worker node key=value label. 不适用
设备路径 devicepath 配置 本地存储设备路径。 Example: /dev/sdc. 当 auto-discover-devices 设置为 false 时必须填写。 不适用
文件系统类型 fstype 配置 文件系统类型。 指定 ext3ext4xfs ext4

4.10 参数参考

4.4.10参数参考
显示名称 CLI 选项 Type 描述 必需? 缺省值
自动存储卷发现 auto-discover-devices 配置 如果要自动发现和使用工作节点上的存储卷,请设置为 true false
节点标签键 label-key 配置 The key of the worker node key=value label. 不适用
节点标签键值 label-value 配置 The value of the worker node key=value label. 不适用
设备路径 devicepath 配置 本地存储设备路径。 Example: /dev/sdc. 当 auto-discover-devices 设置为 false 时必须填写。 不适用
文件系统类型 fstype 配置 文件系统类型。 指定 ext3ext4xfs ext4

4.11 参数参考

4.4.11参数参考
显示名称 CLI 选项 Type 描述 必需? 缺省值
自动存储卷发现 auto-discover-devices 配置 如果要自动发现和使用工作节点上的存储卷,请设置为 true false
节点标签键 label-key 配置 The key of the worker node key=value label. 不适用
节点标签键值 label-value 配置 The value of the worker node key=value label. 不适用
设备路径 devicepath 配置 本地存储设备路径。 Example: /dev/sdc. 当 auto-discover-devices 设置为 false 时必须填写。 不适用
文件系统类型 fstype 配置 文件系统类型。 指定 ext3ext4xfs ext4

4.12 参数参考

4.4.12参数参考
显示名称 CLI 选项 Type 描述 必需? 缺省值
自动存储卷发现 auto-discover-devices 配置 如果要自动发现和使用工作节点上的存储卷,请设置为 true false
节点标签键 label-key 配置 The key of the worker node key=value label. 不适用
节点标签键值 label-value 配置 The value of the worker node key=value label. 不适用
设备路径 devicepath 配置 本地存储设备路径。 Example: /dev/sdc. 当 auto-discover-devices 设置为 false 时必须填写。 不适用
文件系统类型 fstype 配置 文件系统类型。 指定 ext3ext4xfs ext4

4.13 参数参考

4.4.13参数参考
显示名称 CLI 选项 Type 描述 必需? 缺省值
自动存储卷发现 auto-discover-devices 配置 如果要自动发现和使用工作节点上的存储卷,请设置为 true false
节点标签键 label-key 配置 The key of the worker node key=value label. 不适用
节点标签键值 label-value 配置 The value of the worker node key=value label. 不适用
设备路径 devicepath 配置 本地存储设备路径。 Example: /dev/sdc. 当 auto-discover-devices 设置为 false 时必须填写。 不适用
文件系统类型 fstype 配置 文件系统类型。 指定 ext3ext4xfs ext4

本地文件存储器的存储类引用

查看本地文件存储器的 Satellite 存储类。 您可以使用 oc describe sc <storage-class-name> 命令在命令行中描述存储类。

本地文件存储类引用。
存储类名 文件系统 回收策略
sat-local-file-gold ext4xfs Retain

获取本地文件存储的帮助和支持

  1. 查看 Red Hat OpenShift 文档中的常见问题解答。
  2. 查看 故障诊断文档 以进行故障诊断并解决常见问题。
  3. 通过转至 "状态" 页面,检查 IBM Cloud 平台和资源的状态。
  4. 查看 Stack Overflow 以了解其他用户是否迂到了相同的问题。 使用 ibm-cloud 标记任何问题,以便 IBM Cloud 开发团队可以看到这些问题。
  5. 如果迂到本地 File Storage 操作程序的问题,那么可以在 Red Hat 客户门户网站中打开问题。