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 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:
- Execute todos os pré-requisitos antes de iniciar a operação de backup para o backup do AKS.
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:
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
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
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:
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
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