Compartir a través de


Creación de un volumen persistente

En este artículo se describe cómo crear un volumen persistente mediante la autenticación de clave de almacenamiento.

Requisitos previos

En esta sección se describen los requisitos previos para crear un volumen persistente (PV).

  1. Cree una cuenta de almacenamiento siguiendo las instrucciones que se indican aquí.

    Nota:

    Al crear la cuenta de almacenamiento, créela en el mismo grupo de recursos que el clúster de Kubernetes. Se recomienda que también lo cree en la misma región o ubicación que el clúster de Kubernetes.

  2. Cree un contenedor en la cuenta de almacenamiento que ha creado en el paso anterior, siguiendo las instrucciones que se indican aquí.

Configuración de autenticación de clave de almacenamiento

  1. Cree un archivo denominado add-key.sh con el siguiente contenido. No se necesitan modificaciones ni cambios:

    #!/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. Después de crear el archivo, cambie los permisos de escritura en el archivo y ejecute el script de shell mediante los siguientes comandos. Al ejecutar estos comandos, se crea un secreto denominado {YOUR_STORAGE_ACCOUNT}-secret. Este nombre secreto se usa para el valor secretName al configurar el PV:

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

Crear volumen persistente (PV)

Debe crear un volumen persistente (PV) para que los volúmenes de caché creen una instancia local y se enlacen a una cuenta de almacenamiento de BLOB remota.

Tome nota del metadata: name:, ya que debe especificarlo en el spec: volumeName del PVC que se enlaza a él. Use la cuenta de almacenamiento y el contenedor que creó como parte de los requisitos previos.

  1. Cree un archivo denominado 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. Para aplicar este archivo .yaml, ejecute:

    kubectl apply -f "pv.yaml"
    

Pasos siguientes