4.3. 使用 Azure File 的持久性存储

OpenShift Container Platform 支持 Microsoft Azure File 卷。您可以使用 Azure 为 OpenShift Container Platform 集群置备永久性存储。我们假设您对 Kubernetes 和 Azure 有一定的了解。

Kubernetes 持久性卷框架允许管理员提供带有持久性存储的集群,并使用户可以在不了解底层存储架构的情况下请求这些资源。您可以动态置备 Azure File 卷。

持久性卷不绑定到单个项目或命名空间,您可以在 OpenShift Container Platform 集群中共享它们。持久性卷声明是针对某个项目或命名空间的,应用程序中可以请求它的用户。

重要

存储的高可用性功能由底层的存储架构提供。

重要

Azure File 卷使用服务器消息块。

其他资源

4.3.1. 创建 Azure File 共享持久性卷声明

要创建持久性卷声明,您必须首先定义一个包含 Azure 帐户和密钥的 Secret 对象。此 secret 在 PersistentVolume 定义中使用,应用程序中使用的持久性卷声明将引用该 secret。

先决条件

  • 已存在 Azure File 共享。
  • 有访问此共享所需的凭证,特别是存储帐户和密钥。

流程

  1. 创建包含 Azure File 凭证的 Secret 对象:

    $ oc create secret generic <secret-name> --from-literal=azurestorageaccountname=<storage-account> \ 1
      --from-literal=azurestorageaccountkey=<storage-account-key> 2
    1
    Azure File 存储帐户名称。
    2
    Azure File 存储帐户密钥。
  2. 创建引用您创建的 Secret 对象的 PersistentVolume 对象:

    apiVersion: "v1"
    kind: "PersistentVolume"
    metadata:
      name: "pv0001" 1
    spec:
      capacity:
        storage: "5Gi" 2
      accessModes:
        - "ReadWriteOnce"
      storageClassName: azure-file-sc
      azureFile:
        secretName: <secret-name> 3
        shareName: share-1 4
        readOnly: false
    1
    持久性卷的名称。
    2
    此持久性卷的大小。
    3
    包含 Azure File 共享凭证的 secret 名称。
    4
    Azure File 共享的名称。
  3. 创建映射到您创建的持久性卷的 PersistentVolumeClaim 对象:

    apiVersion: "v1"
    kind: "PersistentVolumeClaim"
    metadata:
      name: "claim1" 1
    spec:
      accessModes:
        - "ReadWriteOnce"
      resources:
        requests:
          storage: "5Gi" 2
      storageClassName: azure-file-sc 3
      volumeName: "pv0001" 4
    1
    持久性卷声明的名称。
    2
    持久性卷声明的大小。
    3
    用于置备持久性卷的存储类的名称。指定 PersistentVolume 定义中使用的存储类。
    4
    引用 Azure File 共享的现有 PersistentVolume 对象的名称。