Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve como mover com segurança volumes persistentes do Disco do Azure de um cluster do AKS (Serviço de Kubernetes do Azure) para outro na mesma assinatura ou em uma assinatura diferente. A assinatura de destino precisa estar na mesma região.
A sequência de etapas para concluir essa movimentação é:
- Para evitar a perda de dados, confirme que o estado do recurso de Disco do Azure no cluster AKS de origem não esteja "Anexado".
- Mova o recurso do disco do Azure para o grupo de recursos de destino na mesma ou em outra assinatura.
- Valide se a movimentação de recursos do Disco do Azure foi bem-sucedida.
- Crie o PV (volume persistente) e a PVC (declaração de volume persistente) e monte o disco movido como um volume em um pod no cluster de destino.
Antes de começar
- Certifique-se de possuir a CLI do Azure versão 2.0.59 ou posterior instalada e configurada. Para saber qual é a versão, execute
az --version. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure. - Examine os detalhes e os requisitos sobre como mover recursos entre diferentes regiões em Mover recursos para um novo grupo de recursos ou assinatura. Examine a lista de verificação antes de mover recursos nesse artigo.
- O cluster de origem precisa ter um ou mais volumes persistentes com um Disco do Azure anexado.
- Você precisa ter um cluster do AKS na assinatura de destino.
Validar o estado do volume de disco
É importante evitar o risco de corrupção de dados, inconsistências ou perda de dados ao trabalhar com volumes persistentes. Para atenuar esses riscos durante o processo de migração ou movimentação, primeiro você precisa verificar se o volume de disco está desanexado executando as etapas a seguir.
Identifique o grupo de recursos do nó que hospeda os discos gerenciados do Azure usando o comando
az aks showe adicione o parâmetro--query nodeResourceGroup.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsvA saída do comando é semelhante ao seguinte exemplo:
MC_myResourceGroup_myAKSCluster_eastusListe os discos gerenciados usando o comando
az disk list. Faça referência ao grupo de recursos retornado na etapa anterior.az disk list --resource-group MC_myResourceGroup_myAKSCluster_eastusExamine a lista e observe quais volumes de disco você planeja mover para o outro cluster. Valide também o estado do disco procurando a propriedade
diskState. A saída do comando é um exemplo condensado.{ "LastOwnershipUpdateTime": "2023-04-25T15:09:19.5439836+00:00", "creationData": { "createOption": "Empty", "logicalSectorSize": 4096 }, "diskIOPSReadOnly": 3000, "diskIOPSReadWrite": 4000, "diskMBpsReadOnly": 125, "diskMBpsReadWrite": 1000, "diskSizeBytes": 1073741824000, "diskSizeGB": 1000, "diskState": "Unattached",Observação
Observe o valor do campo
resourceGrouppara cada disco que você deseja mover da saída acima. Esse grupo de recursos é o grupo de recursos do nó, não o grupo de recursos do cluster. Você precisará do nome desse grupo de recursos para mover os discos.Se
diskStatemostrarAttached, primeiro determine se alguma carga de trabalho ainda está acessando o volume e interrompa-a. Após um período de tempo, o estado do disco retorna o estadoUnattachede pode ser movido.
Mover o volume persistente
Para mover o volume ou volumes persistentes para outro cluster do AKS, siga as etapas descritas em Mover recursos do Azure para um novo grupo de recursos ou assinatura. Você pode usar o portal do Azure, o Azure PowerShell ou a CLI do Azure para realizar a migração.
Durante esse processo, você faz referência a:
- O nome ou a ID do recurso do grupo de recursos do nó de origem que hospeda os discos gerenciados do Azure. Você pode encontrar o nome do grupo de recursos do nó navegando até o painel Discos no portal do Azure e observando o grupo de recursos associado para o disco.
- O nome ou a ID do recurso do grupo de recursos de destino para o qual mover os discos gerenciados.
- O nome ou ID do recurso dos discos gerenciados.
Observação
Devido às dependências entre provedores de recursos, essa operação pode levar até quatro horas para ser concluída.
Verifique se o volume de disco foi movido
Depois de mover o volume de disco para o grupo de recursos do cluster de destino, valide o recurso na lista de grupos de recursos usando o comando az disk list. Faça referência ao grupo de recursos de destino para onde os recursos foram movidos. Neste exemplo, os discos foram movidos para um grupo de recursos chamado MC_myResourceGroup_myAKSCluster_eastus.
az disk list --resource-group MC_myResourceGroup_myAKSCluster_eastus
Montar o disco movido como um volume
Para montar o volume de disco movido, crie um volume persistente estático com a ID do recurso copiada nas etapas anteriores, a declaração de volume persistente e, neste exemplo, um pod simples.
Crie um arquivo pv-azuredisk.yaml com um volume persistente. Atualize o campo volumeHandle com a ID do recurso de disco da etapa anterior.
apiVersion: v1 kind: PersistentVolume metadata: name: pv-azuredisk spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: managed-csi csi: driver: disk.csi.azure.com readOnly: false volumeHandle: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MC_rg_azure_aks-pvc-target_eastus/providers/Microsoft.Compute/disks/pvc-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e volumeAttributes: fsType: ext4Crie um arquivo pvc-azuredisk.yaml com uma PersistentVolumeClaim que usa o PersistentVolume.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-azuredisk spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi volumeName: pv-azuredisk storageClassName: managed-csiCrie PersistentVolume e PersistentVolumeClaim pode meio do comando
kubectl applye faça referência aos dois arquivos YAML que você criou.kubectl apply -f pv-azuredisk.yaml kubectl apply -f pvc-azuredisk.yamlVerifique se o PersistentVolumeClaim foi criado e associado ao PersistentVolume por meio do comando
kubectl get.kubectl get pvc pvc-azurediskA saída do comando é semelhante ao seguinte exemplo:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pv-azuredisk 20Gi RWO 5sPara referenciar o PersistentVolumeClaim, crie um arquivo azure-disk-pod.yaml. No manifesto de exemplo, o nome do pod é mypod.
apiVersion: v1 kind: Pod metadata: name: mypod spec: nodeSelector: kubernetes.io/os: linux containers: - image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine name: mypod resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: azure mountPath: /mnt/azure volumes: - name: azure persistentVolumeClaim: claimName: pvc-azurediskAplique a configuração e monte o volume usando o comando kubectl apply.
kubectl apply -f azure-disk-pod.yamlVerifique o status do pod e os dados migrados com o volume montado dentro do sistema de arquivos de pod em
/mnt/azure. Primeiro, obtenha o status do pod usando o comandokubectl get.kubectl get podsA saída do comando é semelhante ao seguinte exemplo:
NAME READY STATUS RESTARTS AGE mypod 1/1 Running 0 4m1sVerifique os dados dentro do volume
/mnt/azuremontado usando o comandokubectl exec.kubectl exec -it mypod -- ls -l /mnt/azure/A saída do comando é semelhante ao seguinte exemplo:
total 28 -rw-r--r-- 1 root root 0 Jan 11 10:09 file-created-in-source-aks
Próximas etapas
- Para obter mais informações sobre soluções de armazenamento baseadas em disco, confira Soluções baseadas em disco no AKS.
- Para obter mais informações sobre as melhores práticas de armazenamento, confira Melhores práticas para armazenamento e backups no Serviço de Kubernetes do Azure.