Bagikan melalui


Panduan Singkat: Mengonfigurasi cadangan terlindungi untuk kluster Azure Kubernetes Service (AKS) menggunakan Azure CLI

Panduan cepat ini menjelaskan cara mengonfigurasi cadangan yang disimpan di vault untuk kluster Azure Kubernetes Service (AKS) dengan Azure CLI.

Azure Backup for AKS adalah layanan backup berbasis cloud, siap untuk perusahaan, dan berorientasi aplikasi yang memungkinkan Anda mengonfigurasi backup dengan cepat untuk kluster AKS.

Sebelum memulai

Sebelum Anda mengonfigurasi cadangan vault untuk kluster AKS, pastikan prasyarat berikut terpenuhi:

Buat Penyimpanan Cadangan

Untuk membuat vault Backup, jalankan perintah berikut:

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

Vault yang baru dibuat memiliki pengaturan penyimpanan yang ditetapkan sebagai Redundansi Global, sehingga cadangan yang disimpan di level vault akan tersedia di wilayah berpasangan Azure. Setelah pembuatan vault selesai, buat kebijakan pencadangan untuk melindungi kluster AKS.

Buat kebijakan pencadangan

Ambil templat kebijakan menggunakan perintah az dataprotection backup-policy get-default-policy-template.

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

Kami memperbarui templat default untuk kebijakan pencadangan dan menambahkan aturan retensi untuk mempertahankan pencadangan pertama yang berhasil per hari di tingkat Vault selama 30 hari.


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

Setelah kebijakan JSON memiliki semua nilai yang diperlukan, lanjutkan untuk membuat kebijakan baru dari objek kebijakan.

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

Menyiapkan kluster AKS untuk pencadangan

Setelah vault dan pembuatan kebijakan selesai, Anda perlu melakukan persyaratan awal berikut untuk menyiapkan kluster AKS untuk pencadangan:

  1. Buat akun penyimpanan dan kontainer blob.

    Backup untuk AKS menyimpan sumber daya Kubernetes dalam kontainer blob sebagai berkas cadangan. Untuk menyiapkan kluster AKS untuk pencadangan data, Anda perlu menginstal ekstensi di kluster. Ekstensi ini memerlukan akun penyimpanan dan kontainer blob sebagai input.

    Untuk membuat akun penyimpanan baru, jalankan perintah berikut:

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

    Setelah pembuatan akun penyimpanan selesai, buat kontainer blob di dalamnya dengan menjalankan perintah berikut:

    az storage container create --name $blobcontainer --account-name $storageaccount --auth-mode login
    
  2. Instal Ekstensi Pencadangan.

    Ekstensi Cadangan wajib diinstal di kluster AKS untuk melakukan operasi pencadangan dan pemulihan apa pun. Ekstensi Cadangan membuat namespace dataprotection-microsoft di kluster dan menggunakan hal yang sama untuk menyebarkan sumber dayanya. Ekstensi memerlukan akun penyimpanan dan kontainer blob sebagai input untuk penginstalan.

    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
    

    Sebagai bagian dari penginstalan ekstensi, identitas pengguna dibuat di Grup Sumber Daya Kumpulan Simpul kluster AKS. Agar ekstensi mengakses akun penyimpanan, Anda perlu memberikan identitas ini peran Kontributor Penyimpanan Data Blob. Untuk menetapkan peran yang diperlukan, jalankan perintah berikut:

    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. Aktifkan Akses Tepercaya

    Agar brankas Backup tersambung dengan kluster AKS, Anda harus mengaktifkan Akses Tepercaya karena memungkinkan vault Backup memiliki garis pandang langsung ke kluster AKS.

    Untuk mengaktifkan Akses Tepercaya, jalankan perintah berikut:

    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
    

Mengonfigurasi cadangan terproteksi untuk kluster AKS

Dengan vault Backup dan kebijakan pencadangan yang dibuat, dan kluster AKS dalam status siap dicadangkan, Anda sekarang dapat mulai mencadangkan kluster AKS Anda.

Siapkan permintaan

Konfigurasi pencadangan dilakukan dalam dua langkah:

  1. Siapkan konfigurasi cadangan untuk menentukan sumber daya kluster mana yang akan dicadangkan menggunakan perintah az dataprotection backup-instance initialize-backupconfig. Perintah ini menghasilkan JSON, yang dapat Anda perbarui untuk menentukan konfigurasi cadangan untuk kluster AKS Anda sesuai kebutuhan.

    az dataprotection backup-instance initialize-backupconfig --datasource-type AzureKubernetesService > aksbackupconfig.json
    
  2. Siapkan permintaan yang relevan dengan menggunakan vault, kebijakan, kluster AKS, konfigurasi cadangan, dan grup sumber daya rekaman jepret yang sesuai, lalu eksekusi dengan perintah 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
    

Sekarang, gunakan output JSON dari perintah ini untuk mengonfigurasi cadangan untuk kluster AKS.

Menetapkan izin yang diperlukan dan memvalidasi

Dengan permintaan yang disiapkan, pertama-tama Anda perlu memvalidasi apakah peran yang diperlukan ditetapkan ke sumber daya yang terlibat dengan menjalankan perintah berikut:

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

Jika validasi gagal dan ada izin tertentu yang hilang, maka Anda dapat menetapkannya dengan menjalankan perintah berikut:

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

Setelah izin ditetapkan, validasi ulang menggunakan perintah validasi sebelumnya untuk cadangan lalu lanjutkan untuk mengonfigurasi cadangan:

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

Langkah berikutnya