共用方式為


建立永續性磁碟區

本文說明如何使用儲存體金鑰驗證建立永續性磁碟區。

必要條件

本節說明建立永續性磁碟區 (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. 建立檔案後,請變更檔案的寫入權限,並使用下列命令執行殼層指令碼。 執行這些命令會建立名為 {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"
    

下一步