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).
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.
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
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}"
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 valorsecretName
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.
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
Para aplicar este archivo .yaml, ejecute:
kubectl apply -f "pv.yaml"