5.8. Azure Disk CSI Driver Operator

5.8.1. 概述

OpenShift Container Platform 可以使用 Microsoft Azure Disk Storage 的 Container Storage Interface(CSI)驱动程序置备持久性卷(PV)。

重要

Azure Disk CSI Driver Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

在使用 CSI Operator 和驱动程序时,建议先熟悉 持久性存储配置 CSI 卷

要使用此功能创建挂载到 Azure Disk 存储资产中的 CSI 置备 PV,OpenShift Container Platform 在 openshift-cluster-csi-drivers 命名空间中默认安装 Azure Disk CSI Driver Operator 和 Azure Disk CSI 驱动程序。

  • 启用 Azure Disk CSI Driver Operator 后,提供了一个名为 managed-csi 的存储类,您可以使用它来创建持久性卷声明(PVC)。Azure Disk CSI Driver Operator 支持动态卷置备,方法是允许按需创建存储卷,使集群管理员无需预置备存储。
  • Azure Disk CSI 驱动程序 允许您创建并挂载 Azure Disk PV。

5.8.2. 关于 CSI

在过去,存储厂商一般会把存储驱动作为 Kubernetes 的一个部分提供。随着容器存储接口 (CSI) 的实现,第三方供应商可以使用标准接口来提供存储插件,而无需更改核心 Kubernetes 代码。

CSI Operators 为 OpenShift Container Platform 用户提供了存储选项,如卷快照,它无法通过 in-tree 卷插件实现。

重要

OpenShift Container Platform 默认使用 in-tree(非 CSI)插件来置备 Azure Disk 存储。

在以后的 OpenShift Container Platform 版本中,计划使用现有树内插件置备的卷迁移到对应的 CSI 驱动程序。CSI 自动迁移应该可以无缝进行。迁移不会改变您使用所有现有 API 对象的方式,如持久性卷、持久性卷声明和存储类。有关迁移的更多信息,请参阅 CSI 自动迁移

完全迁移后,后续版本的 OpenShift Container Platform 中将最终删除树内插件。

5.8.3. 启用 Azure CSI Driver Operator

要启用 Azure Container Storage Interface(CSI)Driver Operator,您必须使用 TechPreviewNoUpgrade 功能集启用功能门。

流程

  1. 通过 TechPreviewNoUpgrade 功能集启用功能门(请参阅 NodesEnabling features using feature gates)。

    重要

    在使用功能门(feature gate)启用技术预览功能后,无法关闭这些技术预览功能,并会防止集群升级。

  2. 验证集群操作器存储:

    $ oc get co storage
    NAME    VERSION                             AVAILABLE   PROGRESSING DEGRADED    SINCE
    storage 4.9.0-0.nightly-2021-09-08-162532   True        False       False       4h26m
    • AVAILABLE 应该为 "True"。
    • PROGRESSING 应该为 "False"。
    • DEGRADED 应该为 "False"。
  3. 验证 openshift-cluster-csi-drivers 命名空间中的 pod 状态,以确保它们正在运行:

    $ oc get pod -n openshift-cluster-csi-drivers
    NAME                                                    READY   STATUS  RESTARTS    AGE
    azure-disk-csi-driver-controller-5949bf45fd-pm4qb       11/11   Running 0           39m
    azure-disk-csi-driver-node-2tcxr                        3/3     Running 0           53m
    azure-disk-csi-driver-node-2xjzm                        3/3     Running 0           53m
    azure-disk-csi-driver-node-6wrgk                        3/3     Running 0           53m
    azure-disk-csi-driver-node-frvx2                        3/3     Running 0           53m
    azure-disk-csi-driver-node-lf5kb                        3/3     Running 0           53m
    azure-disk-csi-driver-node-mqdhh                        3/3     Running 0           53m
    azure-disk-csi-driver-operator-7d966fc6c5-x74x5         1/1     Running 0           44m
  4. 验证是否安装了存储类:

    $ oc get storageclass
    NAME                        PROVISIONER                     RECLAIMPOLICY   VOLUMEBINDINGMODE       ALLOWVOLUMEEXPANSION    AGE
    managed-premium (default)   kubernetes.io/azure-disk        Delete          WaitForFirstConsumer    true                    76m
    managed-csi                 disk.csi.azure.com              Delete          WaitForFirstConsumer    true                    51m 1
    1
    Azure 存储类