Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

27.11.5. 创建 Azure Storage Account secret

在 secret 配置中定义 Azure Storage Account 名称和密钥,然后将其转换为 base64,供 OpenShift Container Platform 使用。

  1. 获取 Azure Storage Account 名称和密钥,并编码到 base64:

    apiVersion: v1
    kind: Secret
    metadata:
      name: azure-secret
    type: Opaque
    data:
      azurestorageaccountname: azhzdGVzdA==
      azurestorageaccountkey: eElGMXpKYm5ub2pGTE1Ta0JwNTBteDAyckhzTUsyc2pVN21GdDRMMTNob0I3ZHJBYUo4akQ2K0E0NDNqSm9nVjd5MkZVT2hRQ1dQbU02WWFOSHk3cWc9PQ==
  2. 将 secret 定义保存到文件中,如 azure-secret.yaml,然后创建 secret:

    $ oc create -f azure-secret.yaml
  3. 验证是否已创建 secret:

    $ oc get secret azure-secret
    NAME          TYPE      DATA      AGE
    azure-secret   Opaque    1         23d
  4. 在 OpenShift Container Platform 中创建前,在对象定义中定义 PV:

    使用 Azure File 示例的 PV 对象定义

    apiVersion: "v1"
    kind: "PersistentVolume"
    metadata:
      name: "pv0001" 1
    spec:
      capacity:
        storage: "5Gi" 2
      accessModes:
        - "ReadWriteMany"
      azureFile: 3
        secretName: azure-secret 4
        shareName: example 5
        readOnly: false 6

    1
    卷的名称。这是如何通过 PV 声明 或 pod 识别它。
    2
    为这个卷分配的存储量。
    3
    这将定义正在使用的卷类型: azureFile 插件。
    4
    使用的 secret 的名称。
    5
    文件共享的名称。
    6
    默认为 false (读/写)。此处的 ReadOnly 用于强制 VolumeMount 中的 ReadOnly 设置。
  5. 将定义保存到文件中,如 azure-file-pv.yaml 并创建 PV:

    $ oc create -f azure-file-pv.yaml
    persistentvolume "pv0001" created
  6. 确定创建了 PV:

    $ oc get pv
    NAME      LABELS    CAPACITY   ACCESSMODES   STATUS      CLAIM     REASON    AGE
    pv0001    <none>    5Gi        RWM           Available                       2s

现在,您可以使用 PV 声明来请求存储,该声明现在可以使用您的新 PV。

重要

PV 声明仅存在于用户的命名空间中,且只能被同一命名空间中的 pod 引用。尝试从不同命名空间中访问 PV 会导致 pod 失败。