Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo configurar y realizar copias de seguridad de Azure Kubernetes Service (AKS) mediante Azure CLI. También puede realizar copias de seguridad de AKS mediante Azure PowerShell.
Azure Backup ahora permite realizar copias de seguridad de clústeres de AKS (recursos de clúster y volúmenes persistentes conectados al clúster) mediante una extensión de copia de seguridad, que debe instalarse en el clúster. El almacén de copia de seguridad se comunica con el clúster mediante esta extensión de copia de seguridad para realizar operaciones de copia de seguridad y restauración.
Antes de comenzar
Actualmente, la copia de seguridad de AKS solo admite volúmenes persistentes basados en disco Azure (habilitados por el controlador CSI). Las copias de seguridad solo se almacenan en el almacén de datos operativo (en el inquilino) y no se mueven a un almacén. El almacén de copia de seguridad y el clúster de AKS deben estar en la misma región.
La copia de seguridad de AKS usa un contenedor de blobs y un grupo de recursos para almacenar las copias de seguridad. El contenedor de blobs tiene los recursos del clúster de AKS almacenados en él, mientras que las instantáneas de volumen persistentes se almacenan en el grupo de recursos. El clúster de AKS y las ubicaciones de almacenamiento deben residir en la misma región. Obtenga información sobre cómo crear un contenedor de blobs.
Actualmente, la copia de seguridad de AKS admite una copia de seguridad una vez al día. También admite copias de seguridad más frecuentes (en cada intervalo de 4, 8 y 12 horas) al día. Permite conservar los datos para su restauración durante un máximo de 360 días. Obtenga información sobre cómo crear una directiva de copia de seguridad.
Debe instalar la extensión de copia de seguridad para configurar las operaciones de copia de seguridad y restauración en un clúster de AKS. Obtenga más información sobre la extensión de copia de seguridad.
Asegúrese de que
Microsoft.KubernetesConfiguration,Microsoft.DataProtectionyMicrosoft.ContainerServiceestén registrados para la suscripción antes de iniciar las operaciones de configuración y restauración de copia de seguridad.Asegúrese de cumplir todos los requisitos previos antes de iniciar la operación de copia de seguridad o restauración para la copia de seguridad de AKS.
Para obtener más información sobre los escenarios admitidos, las limitaciones y la disponibilidad, consulte la matriz de compatibilidad.
Creación de un almacén de Backup
Un almacén de Backup es una entidad de administración en Azure que almacena los datos de copia de seguridad de varias cargas de trabajo más recientes que Azure Backup admite, como servidores Azure Database for PostgreSQL y discos de Azure. Los almacenes de Backup facilitan la tarea de organizar los datos de copia de seguridad, al mismo tiempo que reducen al mínimo la sobrecarga administrativa. Los almacenes de copia de seguridad se basan en el modelo de Azure Resource Manager de Azure, que proporciona funcionalidades mejoradas para ayudar a proteger los datos de copia de seguridad.
Antes de crear un almacén de copia de seguridad, elija la redundancia de almacenamiento de los datos del almacén y, a continuación, cree el almacén de copia de seguridad con esa redundancia de almacenamiento y la ubicación. Obtenga más información sobre cómo crear un almacén de Backup.
Nota:
Aunque el almacén seleccionado pueda tener la configuración de redundancia global, la copia de seguridad de AKS solo admite actualmente el Nivel operativo. Todas las copias de seguridad se almacenan en la suscripción en la misma región que la del clúster de AKS y no se copian en el almacenamiento del almacén de copia de seguridad.
Para crear el almacén de Backup, ejecute el siguiente comando:
az dataprotection backup-vault create --resource-group $backupvaultresourcegroup --vault-name $backupvault --location $region --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
Una vez completada la creación de la bóveda, cree una política de copia de seguridad para proteger los clústeres de AKS.
Crear una directiva de copia de seguridad
Para comprender los componentes internos de una directiva de copia de seguridad para la copia de seguridad de AKS, recupere la plantilla de directiva mediante el comando az dataprotection backup-policy get-default-policy-template. Este comando devuelve una plantilla de directiva predeterminada para un tipo de origen de datos determinado. Usa esta plantilla de política para crear una nueva política.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureKubernetesService > akspolicy.json
{
"datasourceTypes": [
"Microsoft.ContainerService/managedClusters"
],
"name": "AKSPolicy1",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Incremental",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupHourly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2023-01-04T09:00:00+00:00/PT4H"
]
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
}
La plantilla de directiva consta de un criterio de desencadenador (que decide los factores para desencadenar el trabajo de copia de seguridad) y un ciclo de vida (que decide cuándo eliminar, copiar o mover las copias de seguridad). En la copia de seguridad de AKS, el valor de desencadenador predeterminado es un desencadenador por horas que está programado para activarse cada 4 horas (PT4H) y para conservar cada copia de seguridad durante siete días.
Scheduled trigger:
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2023-01-04T09:00:00+00:00/PT4H"
]
}
}
Default retention lifecycle:
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
]
La copia de seguridad de AKS proporciona varias copias de seguridad al día. Si tiene que hacer copias de seguridad con más frecuencia, elija la frecuencia de copia de seguridad Cada hora, ya que le ofrece la posibilidad de hacer copias de seguridad a intervalos de 4, 6, 8 o 12 horas. Las copias de seguridad se programan en función del Intervalo de tiempo ha seleccionado.
Importante
La hora del día indica la hora de inicio de la copia de seguridad, no la hora en que se completa la misma.
La programación de copia de seguridad sigue el formato de duración ISO 8601. Sin embargo, no se admite el prefijo R de intervalo de repetición, ya que las copias de seguridad están configuradas para ejecutarse indefinidamente. Cualquier valor especificado con R se omitirá.
Una vez que descargue la plantilla como un archivo JSON, puede editarla para programarla y conservarla según sea necesario. A continuación, cree una nueva directiva con el archivo JSON resultante. Si quiere editar la frecuencia por hora o el período de retención, use los comandos az dataprotection backup-policy trigger set o az dataprotection backup-policy retention-rule set.
Nota:
Para almacenar los datos de copia de seguridad en el Nivel de almacén para conservarlos a largo plazo con fines de cumplimiento o para la recuperación ante desastres regionales a través de la restauración entre regiones, deberá definir una nueva regla de retención en la plantilla predeterminada que define cuánto tiempo se debe almacenar la copia de seguridad en el almacén.
Veamos un ejemplo en el que actualizaremos la plantilla predeterminada para la directiva de copia de seguridad y agregaremos una regla de retención para conservar primera copia de seguridad correcta al día en el Nivel de almacén durante 30 días.
Use el comando az dataprotection backup-policy retention-rule create-lifecycle para crear una regla de retención y a continuación, agregue la regla de retención a la plantilla de directiva de copia de seguridad con el comando``
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
Una vez que el archivo JSON de la directiva tenga todos los valores necesarios, continúe con la creación de una directiva a partir del objeto de directiva con el comando az dataprotection backup-policy create.
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy policy.json
Preparación del clúster de AKS para la copia de seguridad
Una vez se complete la creación del almacén y la directiva, deberá disponer de los siguientes requisitos previos para preparar el clúster de AKS para la copia de seguridad:
Cree una cuenta de almacenamiento y un contenedor de blobs.
La copia de seguridad de AKS guarda los recursos de Kubernetes en un contenedor de blobs como respaldo. Para preparar el clúster de AKS para la copia de seguridad, deberá instalar una extensión en el clúster. Esta extensión requerirá la cuenta de almacenamiento y el contenedor de blobs como entradas.
Para crear una cuenta de almacenamiento, ejecute el siguiente comando:
az storage account create --name $storageaccount --resource-group $storageaccountresourcegroup --location $region --sku Standard_LRSUna vez completada la creación de la cuenta de almacenamiento, ejecute el comando siguiente para crear un contenedor de blobs dentro de ella:
az storage container create --name $blobcontainer --account-name $storageaccount --auth-mode loginNota:
- La cuenta de almacenamiento y el clúster de AKS deberán estar en la misma región y suscripción.
- El contenedor de blobs no debería contener ningún sistema de archivos creado anteriormente (excepto si se creó por la copia de seguridad de AKS).
- Si el clúster de AKS de origen o de destino estuviera en una red virtual privada, deberá crear un punto de conexión privado para conectar la cuenta de almacenamiento con el clúster de AKS.
Instale la extensión de copia de seguridad.
La extensión de copia de seguridad es obligatoria para instalarse en el clúster de AKS para realizar cualquier operación de copia de seguridad y restauración. La extensión de copia de seguridad crea un espacio de nombres
dataprotection-microsoften el clúster y usa lo mismo para implementar sus recursos. Esta extensión requerirá la cuenta de almacenamiento y el contenedor de blobs como entradas para la instalación.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
En caso de que el clúster de AKS esté dentro de una red virtual, tendrá que crear un punto de conexión privado, conectando la cuenta de almacenamiento con la red virtual en la que reside el clúster de AKS.
#Fetch the Subnet ID using the name of the virtual network and subnet in which cluster resides
$PESubnetId = az network vnet subnet show --resource-group $aksMCResourceGroup --vnet-name $aksVnetName --name $PESubnetName --query 'id' --output tsv
#Create a Private Endpoint between Storage Account and the Virtual Network.
az network private-endpoint create `
--resource-group $aksclusterresourcegroup `
--name $StoragePrivateEndpoint `
--vnet-name $aksVnetName `
--subnet $PESubnetId `
--private-connection-resource-id $(az storage account show --nameD $storageaccount --resource-group $storageaccountresourcegroup --query "id" --output tsv) `
--group-ids "blob" `
--connection-name "StoragePESharedVNetConnection"
Como parte de la instalación de la extensión, se creará una identidad de usuario en el grupo de recursos del grupo de nodos del clúster de AKS. Para que la extensión tenga acceso a la cuenta de almacenamiento, deberá asignar a esta identidad el rol de Colaborador de datos de blobs de almacenamiento. Para asignar el rol necesario, ejecute el comando siguiente:
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
Habilitación del acceso de confianza
Para que el almacén de copias de seguridad se conecte con el clúster de AKS, tiene que habilitar el acceso de confianza, ya que permitirá que el almacén de copias de seguridad tenga una línea directa de visión al clúster de AKS.
Para habilitar el acceso de confianza, ejecute el comando siguiente:
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
Configuración de copias de seguridad
Con el almacén de copias de seguridad y la directiva de copia de seguridad creadas, además del clúster de AKS en estado listo para copia de seguridad, ahora podrá comenzar a realizar una copia de seguridad de su clúster de AKS.
Preparación de la solicitud
La configuración de la copia de seguridad se realiza en dos pasos:
Prepare la configuración de copia de seguridad para definir los recursos del clúster de los que se vaya a hacer una copia de seguridad mediante el comando
az dataprotection backup-instance initialize-backupconfig. El comando genera un JSON, que puede actualizar para definir la configuración de copia de seguridad del clúster de AKS según sea necesario.az dataprotection backup-instance initialize-backupconfig --datasource-type AzureKubernetesService > aksbackupconfig.json { "excluded_namespaces": null, "excluded_resource_types": null, "include_cluster_scope_resources": true, "included_namespaces": null, "included_resource_types": null, "label_selectors": null, "snapshot_volumes": true }
Los siguientes espacios de nombres se omiten de la configuración de copia de seguridad y no se configuran para las copias de seguridad: kube-system, kube-node-lease, kube-public.
Prepare la solicitud pertinente mediante el almacén, la directiva, el clúster de AKS, la configuración de copia de seguridad y el grupo de recursos de instantáneas pertinentes mediante el 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
Ahora, use la salida JSON de este comando para configurar la copia de seguridad del clúster de AKS.
Asignación de permisos necesarios y validación
El almacén de copias de seguridad utiliza la identidad administrada para acceder a otros recursos de Azure. Para configurar la copia de seguridad del clúster de AKS, la identidad administrada del almacén de copia de seguridad necesitará un conjunto de permisos del clúster de AKS y los grupos de recursos donde se creen y administren las instantáneas. Además, el clúster de AKS requiere permisos en el grupo de recursos de Snapshot.
Solo se admite la identidad administrada asignada por el sistema para la copia de seguridad (tanto para el almacén de copias de seguridad como el clúster de AKS). Solo hay una identidad administrada asignada por cada recurso y está asociada al ciclo de vida del recurso. Puede conceder permisos a la identidad administrada mediante el control de acceso basado en roles de Azure (Azure RBAC). La identidad administrada es un principal de servicio de tipo especial que puede utilizarse exclusivamente con recursos de Azure. Más información sobre las identidades administradas.
Con la solicitud preparada, primero tiene que ejecutar el comando siguiente para validar si los roles necesarios están asignados a los recursos mencionados anteriormente:
az dataprotection backup-instance validate-for-backup --backup-instance ./backupinstance.json --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault
Si se produce un error en la validación y faltan determinados permisos, puede ejecutar el comando siguiente para asignarlos:
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
Una vez que se hayan asignado los permisos, vuelva a validar con el siguiente comando de validación para copia de seguridad:
az dataprotection backup-instance create --backup-instance backupinstance.json --resource-group $backupvaultresourcegroup --vault-name $backupvault
Ejecución de una copia de seguridad a petición
Para capturar la instancia de copia de seguridad pertinente en la que desee desencadenar una copia de seguridad, ejecute el comando az dataprotection backup-instance list-from-resourcegraph --.
az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --query aksAssignedIdentity.id
Ahora, desencadene una copia de seguridad a petición para la instancia de copia de seguridad mediante el siguiente comando:
az dataprotection backup-instance adhoc-backup --rule-name "BackupDaily" --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupInstances/$backupinstanceid
Configuración de la copia de seguridad mediante un único comando de Azure CLI
Azure Backup proporciona una experiencia simplificada para configurar la protección de copia de seguridad para clústeres de Azure Kubernetes Service (AKS) mediante un único comando de Azure CLI.
Nota:
Este procedimiento es un enfoque alternativo. El enfoque anterior para crear instancias de copia de seguridad mediante az dataprotection backup-instance initialize-backupconfig el comando sigue funcionando como de costumbre.
La configuración de copia de seguridad de los clústeres de AKS requiere que complete varios pasos manuales, como la instalación de la extensión de copia de seguridad, la aprovisionamiento de recursos de almacenamiento, el almacén de copia de seguridad y la creación de directivas, la configuración del acceso de confianza entre el clúster de AKS y el almacén de copia de seguridad y la inicialización de la instancia de copia de seguridad.
Para simplificar esta configuración de copia de seguridad, Microsoft proporciona un enfoque alternativo para habilitar la protección de copia de seguridad para un clúster de AKS mediante la ejecución del siguiente comando:
az dataprotection enable-backup trigger \
--datasource-type AzureKubernetesService \
--datasource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ContainerService/managedClusters/<aks-cluster-name>
Al ejecutar este comando, Azure Backup realiza automáticamente el siguiente flujo de trabajo de configuración:
- Validar el estado del clúster de AKS y la compatibilidad de copia de seguridad
- Creación o reutilización de un grupo de recursos de copia de seguridad específico de la región
- Instalación de la extensión backup en el clúster de AKS (si aún no está presente)
- Creación o reutilización de los recursos de almacenamiento necesarios para la copia de seguridad
- Creación o reutilización de un almacén de copia de seguridad y una directiva de copia de seguridad
- Habilitar acceso de confianza entre la bóveda de copia de seguridad y el clúster de AKS
- Inicialización y creación de la instancia de copia de seguridad
Proporcionar parámetros de configuración de copia de seguridad opcionales
Opcionalmente, puede proporcionar un archivo de configuración para usar los recursos de copia de seguridad existentes o aplicar opciones personalizadas durante la configuración de copia de seguridad.
Nota:
Para ejecutar este comando, debe estar en la versión 1.9.0 de la CLI y versiones posteriores. Siga estos pasos para instalar o actualizar la versión de la CLI:
- Instalación por primera vez:
az extension add -n dataprotection - Actualice si ya está instalado:
az extension add -n dataprotection --upgrade - Compruebe la versión (debe ser >= 1.9.0):
az extension show -n dataprotection --query version -o tsv
Ejecute el siguiente comando para habilitar la copia de seguridad mediante un archivo de configuración:
az dataprotection enable-backup trigger \
--datasource-type AzureKubernetesService \
--datasource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ContainerService/managedClusters/<aks-cluster-name> \
--backup-strategy <Strategy>\
--backup-configuration-file @config.json
El archivo de configuración puede incluir los parámetros siguientes:
| Parámetro | Descripción |
|---|---|
backupVaultId |
Utilizar un repositorio de copia de seguridad existente |
backupPolicyId |
Uso de una directiva de copia de seguridad existente |
storageAccountResourceId |
Uso de una cuenta de almacenamiento existente |
blobContainerName |
Especificar un nombre de contenedor personalizado |
backupResourceGroupId |
Uso de un grupo de recursos existente |
tags |
Aplicación de etiquetas a recursos creados |
Archivo de configuración de ejemplo:
{
"tags": {
"Owner": "azure@microsoft.com",
"Environment": "Production"
}
}
Estrategias de copia de seguridad admitidas
Ejecute el siguiente comando para configurar la copia de seguridad mediante una estrategia predefinida:
az dataprotection enable-backup trigger \
--datasource-type AzureKubernetesService \
--datasource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ContainerService/managedClusters/<aks-cluster-name> \
--backup-strategy DisasterRecovery\
Puede elegir entre las siguientes estrategias de copia de seguridad predefinidas:
| Estrategia | Descripción |
|---|---|
Week (valor predeterminado) |
Conserva las copias de seguridad en el almacén operativo durante 7 días. |
Month |
Conserva las copias de seguridad en el almacén operativo durante 30 días. |
DisasterRecovery |
Conserva las copias de seguridad en el almacén operativo durante 7 días y en el almacén de Vault durante 90 días. |
| Personalizada | Usa el almacén y la directiva de copias de seguridad existentes. |
Con la estrategia personalizada , deberá usar el archivo de configuración mencionado anteriormente.
Para obtener más información, consulte el comando de la CLI aquí.
Seguimiento de trabajos
Haga un seguimiento de los trabajos de copia de seguridad con el comando az dataprotection job. Puede enumerar todos los trabajos y capturar un detalle de trabajo determinado.
También puede usar Resource Graph para hacer un seguimiento de todos los trabajos de todas las suscripciones, grupos de recursos y almacenes de Backup mediante el comando az dataprotection job list-from-resourcegraph para obtener el trabajo pertinente.
Para la copia de seguridad a petición:
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation OnDemandBackup
Para la copia de seguridad programada:
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation ScheduledBackup
Pasos siguientes
- Restaure Azure Kubernetes Service clúster mediante Azure CLI, Azure PowerShell
- Administrar copias de seguridad de clústeres de Azure Kubernetes Service
- Acerca de la copia de seguridad del clúster de Azure Kubernetes Service