Compartilhar via


Início Rápido: Configurar backup para um cluster AKS (Serviço de Kubernetes do Azure) usando a CLI do Azure

Este guia de início rápido descreve como configurar o backup com cofres para um cluster AKS (Serviço de Kubernetes do Azure) usando a CLI do Azure.

O Backup do Azure para AKS é um serviço de backup nativo de nuvem, pronto para empresas e centrado em aplicativos que permite configurar rapidamente o backup para clusters AKS.

Antes de começar

Antes de configurar o backup em cofre para o cluster do AKS, garanta que os seguintes pré-requisitos sejam atendidos:

Criar um cofre de backup

Para criar o cofre de Backup, execute o seguinte comando:

az dataprotection backup-vault create --resource-group $backupvaultresourcegroup --vault-name $backupvault --___location $region --type SystemAssigned --storage-settings datastore-type="VaultStore" type="GeoRedundant"

O cofre recém-criado tem configurações de armazenamento definidas como globalmente redundantes, portanto, os backups armazenados no nível de cofre estarão disponíveis na região emparelhada do Azure. Depois que a criação do cofre for concluída, crie uma política de backup para proteger os clusters do AKS.

Criar uma política de backup

Recupere o modelo de política usando o comando az dataprotection backup-policy get-default-policy-template.

az dataprotection backup-policy get-default-policy-template --datasource-type AzureKubernetesService > akspolicy.json

Atualizamos o modelo padrão da política de backup e adicionamos uma regra de retenção para manter o primeiro backup bem-sucedido por dia no nível de cofre por 30 dias.


az dataprotection backup-policy retention-rule create-lifecycle  --count 30 --retention-duration-type Days --copy-option ImmediateCopyOption --target-datastore VaultStore --source-datastore OperationalStore > ./retentionrule.json

az dataprotection backup-policy retention-rule set --lifecycles ./retentionrule.json --name Daily --policy ./akspolicy.json > ./akspolicy.json

Quando o JSON da política tiver todos os valores necessários, crie uma nova política com base no objeto de política.

az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy akspolicy.json

Preparar o cluster do AKS para backup

Depois que o cofre e a criação da política forem concluídos, execute os seguintes pré-requisitos para preparar o cluster do AKS para backup:

  1. Crie uma conta de armazenamento e um contêiner de blobs.

    O backup para AKS armazena recursos do Kubernetes em um contêiner de blob como backups. Para preparar o cluster do AKS para backup, você precisa instalar uma extensão no cluster. Essa extensão requer a conta de armazenamento e o contêiner de blob como entradas.

    Para criar uma nova conta de armazenamento, execute o seguinte comando:

    az storage account create --name $storageaccount --resource-group $storageaccountresourcegroup --___location $region --sku Standard_LRS
    

    Após a criação da conta de armazenamento, crie um contêiner de blob internamente executando o seguinte comando:

    az storage container create --name $blobcontainer --account-name $storageaccount --auth-mode login
    
  2. Instalar extensão de backup.

    A Extensão de Backup é obrigatória para ser instalada no cluster do AKS para executar as operações de backup e restauração. A Extensão de Backup cria um namespace dataprotection-microsoft no cluster e usa o mesmo para implantar seus recursos. Essa extensão requer a conta de armazenamento e o contêiner de blob como entradas para instalação.

    az k8s-extension create --name azure-aks-backup --extension-type microsoft.dataprotection.kubernetes --scope cluster --cluster-type managedClusters --cluster-name $akscluster --resource-group $aksclusterresourcegroup --release-train stable --configuration-settings blobContainer=$blobcontainer storageAccount=$storageaccount storageAccountResourceGroup=$storageaccountresourcegroup storageAccountSubscriptionId=$subscriptionId
    

    Como parte da instalação da extensão, uma identidade de usuário é criada no grupo de recursos do pool de nós do cluster do AKS. Para que a extensão acesse a conta de armazenamento, você precisa fornecer essa identidade a função Colaborador de Dados do Blob de Armazenamento. Para atribuir a função necessária, execute o seguinte comando:

    az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name $akscluster --resource-group $aksclusterresourcegroup --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv) --role 'Storage Blob Data Contributor' --scope /subscriptions/$subscriptionId/resourceGroups/$storageaccountresourcegroup/providers/Microsoft.Storage/storageAccounts/$storageaccount
    
  3. Habilitar o acesso confiável

    Para que o Cofre de Backup se conecte ao cluster do AKS, você deve habilitar o Acesso Confiável, pois ele permite que o Cofre de Backup tenha uma linha de visão direta para o cluster do AKS.

    Para habilitar o Acesso Confiável, execute o seguinte comando:

    az aks trustedaccess rolebinding create --cluster-name $akscluster --name backuprolebinding --resource-group $aksclusterresourcegroup --roles Microsoft.DataProtection/backupVaults/backup-operator --source-resource-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/BackupVaults/$backupvault
    

Configurar backups em cofre para o cluster do AKS

Com o Cofre de Backup e a política de backup criados e o cluster do AKS no estado pronto para backup, agora você pode começar a fazer backup do cluster do AKS.

Preparar a solicitação

A configuração do backup é executada em duas etapas:

  1. Prepare a configuração de backup para definir quais recursos do cluster terão o backup feito usando o comando az dataprotection backup-instance initialize-backupconfig. O comando gera um JSON, o qual pode ser atualizado para definir a configuração de backup do seu cluster AKS conforme necessário.

    az dataprotection backup-instance initialize-backupconfig --datasource-type AzureKubernetesService > aksbackupconfig.json
    
  2. Prepare a solicitação relevante usando o cofre, a política, o cluster AKS, a configuração de backup e o grupo de recursos de instantâneos relevantes usando o comando az dataprotection backup-instance initialize.

    az dataprotection backup-instance initialize --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --datasource-___location $region --datasource-type AzureKubernetesService --policy-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupPolicies/$backuppolicy --backup-configuration ./aksbackupconfig.json --friendly-name ecommercebackup --snapshot-resource-group-name $snapshotresourcegroup > backupinstance.json
    

Agora, use a saída JSON desse comando para configurar o backup do cluster do AKS.

Atribuir permissões necessárias e validar

Quando a solicitação estiver preparada, primeiro você precisará executar o seguinte comando para validar se as funções necessárias estão atribuídas aos recursos envolvidos executando o seguinte comando:

az dataprotection backup-instance validate-for-backup --backup-instance ./backupinstance.json --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault

Se a validação falhar e houver algumas permissões ausentes, você poderá atribuí-las executando o seguinte comando:

az dataprotection backup-instance update-msi-permissions command.
az dataprotection backup-instance update-msi-permissions --datasource-type AzureKubernetesService --operation Backup --permissions-scope ResourceGroup --vault-name $backupvault --resource-group $backupvaultresourcegroup --backup-instance backupinstance.json

Depois que as permissões forem atribuídas, revalide usando o comando validar para backup anterior e, em seguida, prossiga para configurar o backup:

az dataprotection backup-instance create --backup-instance  backupinstance.json --resource-group $backupvaultresourcegroup --vault-name $backupvault

Próximas etapas