Partager via


Créer un volume persistant

Cet article présente comment créer un volume persistant en utilisant une authentification par clé de stockage.

Prérequis

Cette section décrit les conditions préalables à la création d’un volume persistant (PV).

  1. Créez un compte de stockage en suivant les instructions indiquées ici.

    Remarque

    Quand vous créez votre compte de stockage, créez-le sous le même groupe de ressources que votre cluster Kubernetes. Nous vous recommandons également de le créer sous la même région ou le même emplacement que votre cluster Kubernetes.

  2. Créez un conteneur dans le compte de stockage créé à l’étape précédente en suivant les instructions indiquées ici.

Configuration de l’authentification par clé de stockage

  1. Créez un fichier nommé add-key.sh avec le contenu suivant. Les modifications et changements sont inutiles :

    #!/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. Après la création du fichier, modifiez les autorisations en écriture sur le fichier et exécutez le script d’interpréteur de commandes en utilisant les commandes suivantes. L’exécution de ces commandes crée un secret nommé {YOUR_STORAGE_ACCOUNT}-secret. Ce nom de secret est utilisé pour la valeur secretName lors de la configuration de votre PV :

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

Créer un volume persistant (PV)

Vous devez créer un volume persistant (PV) pour Cache Volumes afin de créer une instance locale et effectuer une liaison à un compte de stockage BLOB distant.

Notez l’élément metadata: name:, car vous devez le spécifier dans le volume spec: volumeName de la revendication de volume persistant (PVC) qui établit une liaison avec lui. Utilisez votre compte de stockage et conteneur créés dans le cadre des conditions préalables.

  1. Créez un fichier nommé 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. Pour appliquer ce fichier .yaml, exécutez :

    kubectl apply -f "pv.yaml"
    

Étapes suivantes