Compartilhar via


Criar um volume persistente

Este artigo descreve como criar um volume persistente usando a autenticação de chave de armazenamento.

Pré-requisitos

Esta seção descreve os pré-requisitos para criar um PV (volume persistente).

  1. Crie uma conta de armazenamento seguindo as instruções aqui.

    Observação

    Quando você criar sua conta de armazenamento, crie-a no mesmo grupo de recursos que seu cluster do Kubernetes. É recomendável que você também a crie na mesma região/localização do seu cluster do Kubernetes.

  2. Crie um contêiner na conta de armazenamento que você criou na etapa anterior, seguindo as instruções aqui.

Configuração de autenticação de chave de armazenamento

  1. Crie um arquivo chamado add-key.sh com o conteúdo a seguir. Nenhuma edição ou alteração é necessária:

    #!/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. Após criar o arquivo, altere as permissões de gravação no arquivo e execute o script de shell usando os comandos a seguir. Executar esses comandos cria um segredo chamado {YOUR_STORAGE_ACCOUNT}-secret. Esse nome secreto é usado para o valor secretName ao configurar seu PV:

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

Criar o PV (Volume Persistente)

Você precisa criar um Volume Persistente (PV) para Volumes de Cache para criar uma instância local e vinculá-la a uma conta de armazenamento de BLOB remota.

Observe e anote o metadata: name: porque você vai precisar especificá-lo no spec: volumeName do PVC que se vincular a ele. Use sua conta de armazenamento e o contêiner criado como parte dos pré-requisitos.

  1. Crie um arquivo chamado 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 arquivo .yaml, execute:

    kubectl apply -f "pv.yaml"
    

Próximas etapas