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 volume persistente (PV).
Crie uma conta de armazenamento seguindo as instruções aqui.
Nota
Ao criar sua conta de armazenamento, crie-a no mesmo grupo de recursos do cluster do Kubernetes. É recomendável que você também o crie na mesma região/local do cluster do Kubernetes.
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
Crie um arquivo chamado add-key.sh com o seguinte conteúdo. Não são necessárias edições ou alterações:
#!/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}"
Depois de criar o arquivo, altere as permissões de gravação no arquivo e execute o shell script usando os seguintes comandos. A execução desses comandos cria um segredo chamado
{YOUR_STORAGE_ACCOUNT}-secret
. Este nome secreto é usado para osecretName
valor 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 volume persistente (PV)
Você deve criar um Volume Persistente (PV) para Volumes de Cache para criar uma instância local e vincular a uma conta de armazenamento BLOB remoto.
Anote o metadata: name:
como você deve especificá-lo no spec: volumeName
do PVC que se liga a ele. Use sua conta de armazenamento e contêiner que você criou como parte dos pré-requisitos.
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
Para aplicar este arquivo .yaml, execute:
kubectl apply -f "pv.yaml"