你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建永久性卷

本文介绍如何使用存储密钥身份验证创建永久性卷。

先决条件

本部分介绍创建永久性卷 (PV) 的先决条件。

  1. 按照此处的说明创建一个存储帐户。

    注意

    创建存储帐户时,请在与 Kubernetes 群集相同的资源组下创建该帐户。 建议在 Kubernetes 群集所在的同一区域/位置下创建它。

  2. 按照此处的说明,在上一步中创建的存储帐户中创建一个容器。

存储密钥身份验证配置

  1. 创建包含以下内容的名为 add-key.sh 的文件。 无需进行编辑或更改:

    #!/usr/bin/env bash
    
    while getopts g:n:s: flag
    do
        case "${flag}" in
            g) RESOURCE_GROUP=${OPTARG};;
            s) STORAGE_ACCOUNT=${OPTARG};;
            n) NAMESPACE=${OPTARG};;
        esac
    done
    
    SECRET=$(az storage account keys list -g $RESOURCE_GROUP -n $STORAGE_ACCOUNT --query [0].value --output tsv)
    
    kubectl create secret generic -n "${NAMESPACE}" "${STORAGE_ACCOUNT}"-secret --from-literal=azurestorageaccountkey="${SECRET}" --from-literal=azurestorageaccountname="${STORAGE_ACCOUNT}"
    
  2. 创建文件后,更改对文件的写入权限,并使用以下命令执行 shell 脚本。 运行这些命令将创建一个名为 {YOUR_STORAGE_ACCOUNT}-secret 的机密。 配置 PV 时,此机密名称用于 secretName 值:

    chmod +x add-key.sh
    ./add-key.sh -g "$YOUR_RESOURCE_GROUP_NAME" -s "$YOUR_STORAGE_ACCOUNT_NAME" -n "$YOUR_KUBERNETES_NAMESPACE"
    

创建永久性卷 (PV)

必须为缓存卷创建永久性卷 (PV),才能创建本地实例并绑定到远程 BLOB 存储帐户。

记住 metadata: name:,因为你必须在与其绑定的 PVC 的 spec: volumeName 中指定它。 使用作为先决条件的一部分创建的存储帐户和容器。

  1. 创建一个名为 pv.yaml 的文件:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
        ### Create a name here ###
        name: CREATE_A_NAME_HERE
    spec:
        capacity:
            ### This storage capacity value is not enforced at this layer. ###
            storage: 10Gi
        accessModes:
            - ReadWriteMany
        persistentVolumeReclaimPolicy: Retain
        storageClassName: esa
        csi:
            driver: edgecache.csi.azure.com
            readOnly: false
            ### Make sure this volumeid is unique in the cluster. You must specify it in the spec:volumeName of the PVC. ###
            volumeHandle: YOUR_NAME_FROM_METADATA_NAME_IN_LINE_4_HERE
            volumeAttributes:
                protocol: edgecache
                edgecache-storage-auth: AccountKey
                ### Fill in the next two/three values with your information. ###
                secretName: YOUR_SECRET_NAME_HERE ### From the previous step, this name is "{YOUR_STORAGE_ACCOUNT}-secret" ###
                ### If you use a non-default namespace, uncomment the following line and add your namespace. ###
                ### secretNamespace: YOUR_NAMESPACE_HERE
                containerName: YOUR_CONTAINER_NAME_HERE
    
  2. 若要应用此 .yaml 文件,请运行:

    kubectl apply -f "pv.yaml"
    

后续步骤