Condividi tramite


Creare un volume permanente

Questo articolo descrive come creare un volume permanente usando l'autenticazione della chiave di archiviazione.

Prerequisiti

Questa sezione descrive i prerequisiti per la creazione di un volume permanente (PV).

  1. Creare un account di archiviazione seguendo le istruzioni riportate qui.

    Nota

    Quando si crea l'account di archiviazione, occorre crearlo nello stesso gruppo di risorse del cluster Kubernetes. È consigliabile crearlo anche nella stessa area o nella stessa località del cluster Kubernetes.

  2. Creare un contenitore nell'account di archiviazione creato nel passaggio precedente, seguendo le istruzioni riportate qui.

Configurazione dell'autenticazione della chiave di archiviazione

  1. Creare un file denominato add-key.sh con i contenuti seguenti. Non è necessario apportare modifiche:

    #!/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. Dopo aver creato il file, modificarne le autorizzazioni di scrittura ed eseguire lo script della shell usando i comandi seguenti. L'esecuzione di questi comandi crea un segreto denominato {YOUR_STORAGE_ACCOUNT}-secret. Questo nome del segreto viene usato per il valore secretName durante la configurazione del volume permanente:

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

Creare un volume permanente (PV)

È necessario creare un volume permanente per i volumi della cache in modo da creare un'istanza locale e associarla a un account di archiviazione BLOB remoto.

Annotare il metadata: name: poiché è necessario specificarlo nel spec: volumeName del PVC che si associa a esso. Usare l'account di archiviazione e il contenitore creati come parte dei prerequisiti.

  1. Creare un file denominato 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. Per applicare questo file YAML, eseguire:

    kubectl apply -f "pv.yaml"
    

Passaggi successivi