Aracılığıyla paylaş


PowerShell kullanarak Azure Kubernetes Service'i yedekleme

Bu makalede, Azure PowerShell kullanarak Azure Kubernetes Service'i (AKS) yapılandırma ve yedekleme açıklanmaktadır.

Azure Backup artık kümeye yüklenmesi gereken bir yedekleme uzantısı kullanarak AKS kümelerini (küme kaynakları ve kümeye bağlı kalıcı birimler) yedeklemenize olanak tanır. Yedekleme kasası, yedekleme ve geri yükleme işlemlerini gerçekleştirmek için bu Yedekleme Uzantısı aracılığıyla kümeyle iletişim kurar.

Önkoşullar

AKS kümesini yedeklemeye başlamadan önce aşağıdaki önkoşulları gözden geçirdiğinizden emin olun:

  • Şu anda AKS yedeklemesi yalnızca Azure Disk tabanlı kalıcı birimleri (CSI sürücüsü tarafından etkinleştirilmiştir) destekler. Yedeklemeler yalnızca işletimsel veri deposunda (kiracınızda) depolanır ve kasaya taşınmaz. Backup kasası ve AKS kümesi aynı bölgede olmalıdır.

  • AKS yedeklemesi, yedeklemeleri depolamak için bir blob kapsayıcısı ve kaynak grubu kullanır. Blob kapsayıcısında AKS kümesi kaynakları depolanırken, kalıcı birim anlık görüntüleri kaynak grubunda depolanır. AKS kümesi ve depolama konumları aynı bölgede bulunmalıdır. Blob kapsayıcısı oluşturmayı öğrenin.

  • Şu anda AKS yedeklemesi günde bir kez yedeklemeyi destekler. Ayrıca günde daha sık yedeklemeleri (her 4, 8 ve 12 saatlik aralıklarla) destekler. Bu çözüm, verilerinizi 360 güne kadar geri yükleme için tutmanızı sağlar. Yedekleme ilkesi oluşturmayı öğrenin.

  • AKS kümesinde yedekleme ve geri yükleme işlemlerini yapılandırmak için Yedekleme Uzantısı'nı yüklemeniz gerekir. Yedekleme Uzantısı hakkında daha fazla bilgi edinin.

  • Microsoft.KubernetesConfigurationYedekleme yapılandırmasını ve Microsoft.DataProtection geri yükleme işlemlerini başlatmadan önce aboneliğiniz için , Microsoft.ContainerServiceve 'nin kayıtlı olduğundan emin olun.

  • AKS yedeklemesi için yedekleme veya geri yükleme işlemini başlatmadan önce tüm önkoşulları gerçekleştirdiğinden emin olun.

Desteklenen senaryolar, sınırlamalar ve kullanılabilirlik hakkında daha fazla bilgi için bkz . destek matrisi.

AKS yedeklemesi için Yedekleme kasası oluşturma

Backup kasası, Azure'da PostgreSQL için Azure Veritabanı sunucuları ve Azure Diskleri gibi Azure Backup'ın desteklediği daha yeni iş yükleri için yedekleme verilerini depolayan bir yönetim varlığıdır. Yedekleme kasaları, yönetim ek yükünü en aza indirirken yedekleme verilerinizi düzenlemenizi kolaylaştırır. Bunlar, yedekleme verilerinin güvenliğini sağlamaya yardımcı olmak için gelişmiş özellikler sağlayan Azure Resource Manager modelini temel alır. Backup kasası oluşturmadan önce kasadaki verilerin depolama yedekliliğini seçin ve ardından bu depolama yedekliliği ve konumuyla Backup kasasını oluşturun.

Burada, testBkpVaultRG kaynak grubu altında Batı ABD bölgesinde bir Backup kasası TestBkpVault oluşturuyoruz. New-AzDataProtectionBackupVault Backup kasası oluşturmak için cmdlet'ini kullanın. Backup kasası oluşturma hakkında daha fazla bilgi edinin.

Not

Seçilen kasada genel yedeklilik ayarı olsa da AKS için yedekleme şu anda yalnızca İşlem Katmanı'nı destekler. Tüm yedeklemeler aboneliğinizde AKS kümesiyle aynı bölgede depolanır ve Backup kasası depolama alanına kopyalanmaz.

  1. Backup kasasının depolama ayarlarını tanımlamak için aşağıdaki cmdlet'i çalıştırın:

    Not

    Kasa yalnızca Yerel Yedeklilik ve İşletimsel Veri deposu desteğiyle oluşturulur.

    $storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore
    
  2. Daha önce bahsedilen ayrıntılara göre Backup kasasını oluşturmak için aşağıdaki cmdlet'i çalıştırın:

    New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
    $TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
    

Kasa oluşturma işlemi tamamlandıktan sonra AKS kümelerini korumak için bir yedekleme ilkesi oluşturun.

AKS kümesi için yedekleme ilkesi oluşturma

Azure Backup, GÜNLÜK yedeklemeler veya Günde birden çok yedekleme ile AKS Kümesi koruması için yedekleme ilkeleri oluşturmanıza olanak tanır.

AKS Kümesi için bir yedekleme ilkesi oluşturmak için aşağıdaki cmdlet'leri çalıştırın:

  1. cmdlet'ini Get-AzDataProtectionPolicyTemplate kullanarak ilke şablonunu getirin ve AKS yedeklemesi için yedekleme ilkesinin iç bileşenlerini denetleyin. Bu komut, belirli bir veri kaynağı türü için varsayılan ilke şablonunu döndürür. Yeni bir ilke oluşturmak için bu ilke şablonunu kullanın.

    $policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService
    

    İlke şablonu bir tetikleyici ölçütlerinden (yedekleme işini tetikleme faktörlerine karar veren) ve bir yaşam döngüsünden (yedeklemelerin ne zaman silineceğine, kopyalandığına veya taşıneceğine karar veren) oluşur. AKS yedeklemesinde, tetikleyici için varsayılan değer zamanlanmış saatlik tetikleyicidir ve her yedeklemeninsaklama süresi 7 gündür.

    $policyDefn.PolicyRule[0]. Trigger | fl
    
    ObjectType: ScheduleBasedTriggerContext
    ScheduleRepeatingTimeInterval: {R/2023-04-05T13:00:00+00:00/PT4H}
    TaggingCriterion: {Default}
    
    $policyDefn.PolicyRule[1]. Lifecycle | fl
    
    DeleteAfterDuration: P7D
    DeleteAfterObjectType: AbsoluteDeleteOption
    SourceDataStoreObjectType : DataStoreInfoBase
    SourceDataStoreType: OperationalStore
    TargetDataStoreCopySetting:
    
  2. Günlük yedekleme sıklığı için yedeklemelerinizin alınması gereken günün saatini belirtin.

    Önemli

    Günün saati, yedeklemenin tamamlanma zamanını değil yedekleme başlangıç saatini gösterir. Yedekleme işlemini tamamlamak için gereken süre, kalıcı birimlerin sayısı ve boyutu ile ardışık yedeklemeler arasındaki değişim oranı gibi çeşitli faktörlere bağlıdır.

    AKS için yedekleme, günde birden çok yedekleme sağlar. Her 4, 6, 8 veya 12 saatte bir aralıklarla yedekleme alabilen Saatlik yedekleme sıklığını seçerek daha sık yedeklemeye ihtiyaç duyarsanız yedeklemeler gün boyunca eşit şekilde dağıtılır. Yedeklemeler, seçtiğiniz Zaman aralığına göre zamanlanır. Örneğin, Her 4 saatte bir'i seçerseniz yedeklemeler yaklaşık olarak 4 saatte bir alınır.

  3. Saatlik sıklığı veya saklama süresini düzenlemek istiyorsanız ve/veya Edit-AzDataProtectionPolicyTriggerClientObject cmdlet'lerini kullanınEdit-AzDataProtectionPolicyRetentionRuleClientObject. İlke nesnesi tüm gerekli değerleri aldıktan sonra, cmdlet'ini kullanarak New-AzDataProtectionBackupPolicy ilke nesnesinden yeni bir ilke oluşturmaya başlayın.

    New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn
    
    $aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"
    

AKS kümesini yedekleme için hazırlama

Kasa ve ilke oluşturma işlemi tamamlandıktan sonra AKS kümesini yedeklemeye hazır yapmak için aşağıdaki önkoşulları gerçekleştirmeniz gerekir:

  1. Depolama hesabı ve blob kapsayıcısı oluşturma

    AKS için yedekleme, Kubernetes kaynaklarını bir blob kapsayıcısında yedek olarak depolar. AKS kümesini yedeklemeye hazırlamak için kümeye bir uzantı yüklemeniz gerekir. Bu uzantı için giriş olarak depolama hesabı ve blob kapsayıcısı gerekir.

    Yeni bir depolama hesabı ve blob kapsayıcısı oluşturmak için şu adımlara bakın.

    Not

    1. Depolama hesabı ve AKS kümesi aynı bölgede ve abonelikte olmalıdır.
    2. Blob kapsayıcısı daha önce oluşturulmuş hiçbir dosya sistemi (AKS için yedekleme tarafından oluşturulanlar dışında) içermemelidir.
    3. Kaynak veya hedef AKS kümeniz özel bir sanal ağdaysa, depolama hesabını AKS kümesine bağlamak için Özel Uç Nokta oluşturmanız gerekir.
  2. Yedekleme Uzantısını Yükleme

    Yedekleme ve geri yükleme işlemlerini gerçekleştirmek için AKS kümesine Yedekleme Uzantısının yüklenmesi zorunludur. Yedekleme Uzantısı, kümede bir ad alanı dataprotection-microsoft oluşturur ve kaynaklarını dağıtmak için aynı ad alanını kullanır. Uzantı, yükleme için giriş olarak depolama hesabı ve blob kapsayıcısı gerektirir. Uzantı yükleme komutları hakkında bilgi edinin.

    Uzantı yüklemesinin bir parçası olarak AKS kümesinin Düğüm Havuzu Kaynak Grubunda bir kullanıcı kimliği oluşturulur. Uzantının depolama hesabına erişmesi için bu kimliğe Depolama Hesabı Katkıda Bulunanı rolünü sağlamanız gerekir. Gerekli rolü atamak için şu komutu çalıştırın

  3. Güvenilen Erişimi Etkinleştir

Backup kasasının AKS kümesine bağlanması için, Backup kasasının AKS kümesine doğrudan bir görüş hattına sahip olmasına izin verdiğinden Güvenilen Erişim'i etkinleştirmeniz gerekir. Güvenilen Erişimi etkinleştirmeyi öğrenin.

Not

Yedekleme Uzantısı yükleme ve Güvenilen Erişim etkinleştirme için komutlar yalnızca Azure CLI'da kullanılabilir.

AKS kümesi için yedeklemeleri yapılandırma

Oluşturulan Yedekleme kasası ve yedekleme ilkesi ve AKS kümesi yedeklenmeye hazır durumda olduğu için artık AKS kümenizi yedeklemeye başlayabilirsiniz.

Önemli varlıklar

  • Korunacak AKS kümesi

    Korunacak AKS kümesinin Azure Resource Manager kimliğini getirin. Bu, kümenin tanımlayıcısı olarak görev görür. Bu örnekte, farklı bir abonelikte bir kaynak grubu aksrg altında PSTestAKSCluster adlı bir AKS kümesi kullanalım:

    $sourceClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "
    
  • Anlık görüntü kaynak grubu

    Kalıcı birim anlık görüntüleri aboneliğinizdeki bir kaynak grubunda depolanır. Azure Backup hizmeti tarafından kullanılacak anlık görüntü veri deposu olarak ayrılmış bir kaynak grubu oluşturmanızı öneririz. Ayrılmış bir kaynak grubu, kaynak grubu üzerindeki erişim izinlerinin kısıtlanmasına olanak sağlayarak yedekleme verilerinin güvenliğini ve yönetimini kolaylaştırır. Kaynak grubunun Azure Resource Manager kimliğini kalıcı birim anlık görüntülerini depolamak istediğiniz konuma kaydedin.

    $snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg"
    

İsteği hazırlama

Yedekleme yapılandırması iki adımda gerçekleştirilir:

  1. Cmdlet'i kullanılarak New-AzDataProtectionBackupConfigurationClientObject yedeklenecek küme kaynaklarını tanımlamak için yedekleme yapılandırmasını hazırlayın. Aşağıdaki örnekte, yapılandırma geçerli olan tüm küme kaynakları olarak tanımlanır ve gelecekteki ad alanları olarak key-value pair x=yetiketle yedeklenir. Ayrıca, küme kapsamındaki tüm kaynaklar ve kalıcı birimler yedeklenir. Aşağıdaki ad alanları yedekleme yapılandırmasından atlanır ve yedeklemeler için yapılandırılmaz: kube-system, kube-node-lease, kube-public.

    $backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
    
  2. cmdlet'ini kullanarak ilgili kasayı, ilkeyi, AKS kümesini, yedekleme yapılandırmasını ve anlık görüntü kaynak grubunu kullanarak Initialize-AzDataProtectionBackupInstance ilgili isteği hazırlayın.

    $backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService  -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
    

Gerekli izinleri atama ve doğrulama

Gerekli izinleri atamak ve AKS kümesi koruması için doğrulama gerçekleştirmek için aşağıdaki cmdlet'leri çalıştırın:

  1. İstek hazırlanarak kullanıcıya Azure rol tabanlı erişim denetimi (Azure RBAC) aracılığıyla kasaya (kasa yönetilen sistem kimliğiyle temsil edilir) ve AKS kümesine gerekli izinleri atamanız gerekir. Bunu cmdlet'ini Set-AzDataProtectionMSIPermission kullanarak gerçekleştirebilirsiniz. Yedekleme kasası, diğer Azure kaynaklarına erişmek için yönetilen kimliği kullanır. AKS kümesinin yedeklemesini yapılandırmak için Backup kasasının yönetilen kimliği, anlık görüntülerin oluşturulduğu ve yönetildiği AKS kümesi ve kaynak gruplarında bir dizi izin gerektirir. Ayrıca AKS kümesi, anlık görüntü kaynak grubu üzerinde izin gerektirir.

    Not

    Yalnızca sistem tarafından atanan yönetilen kimlik şu anda yedekleme için desteklenmektedir (hem Backup kasası hem de AKS kümesi). Sistem tarafından atanan yönetilen kimlik, kaynak başına bir kimlikle sınırlıdır ve bu kaynağın yaşam döngüsüne bağlıdır. Azure RBAC kullanarak yönetilen kimliğe izin vekleyebilirsiniz. Yönetilen kimlik, yalnızca Azure kaynaklarıyla kullanılabilecek özel türde bir hizmet sorumlusudur. Yönetilen kimlikler hakkında daha fazla bilgi edinin.

    Set-AzDataProtectionMSIPermission -BackupInstance $backupInstance -VaultResourceGroup $rgName -VaultName $vaultName -PermissionsScope "ResourceGroup"
    
  2. İzinler atandıktan sonra oluşturulan örneğin hazır olup olduğunu test edin.

    test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance  $backupInstance.Property 
    
  3. Doğrulama başarılı olduğunda, cmdlet'ini kullanarak New-AzDataProtectionBackupInstance AKS kümesini korumak için isteği gönderin.

    New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance
    

AKS kümesi için isteğe bağlı yedekleme çalıştırma

İsteğe bağlı yedekleme tetikleme için aşağıdaki cmdlet'leri çalıştırın:

  1. Cmdlet'ini çalıştırarak bir yedekleme tetiklemesini istediğiniz ilgili yedekleme örneğini Get-AzDataProtectionBackupInstance getirin.

    $instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
    
  2. Yedeklemeyi tetiklerken bir bekletme kuralı belirtin. İlkedeki bekletme kurallarını görüntülemek için bekletme kuralları için ilke nesnesine gidin. Aşağıdaki örnekte, varsayılan adlı kural görüntülenir ve bu kuralı isteğe bağlı yedekleme için kullanacağız.

    $policyDefn.PolicyRule | fl
    BackupParameter: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
    BackupParameterObjectType: AzureBackupParams
    DataStoreObjectType: DataStoreInfoBase
    DataStoreType: OperationalStore
    Name: BackupHourly
    ObjectType: AzureBackupRule
    Trigger: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
    TriggerObjectType: ScheduleBasedTriggerContext
    IsDefault: True
    Lifecycle: {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
    Name: Default
    ObjectType: AzureRetentionRule
    
  3. cmdlet'ini kullanarak isteğe bağlı yedekleme tetikleyin Backup-AzDataProtectionBackupInstanceAdhoc .

    $AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
    
    Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
    

AKS yedekleme işlerini izleme

cmdlet'ini Get-AzDataProtectionJob kullanarak tüm işleri izleyin. Tüm işleri listeleyebilir ve belirli bir iş ayrıntısı getirebilirsiniz. Tüm Backup kasalarında Az.ResourceGraph tüm işleri izlemek için cmdlet'ini de kullanabilirsiniz. Search-AzDataProtectionJobInAzGraph Herhangi bir Backup kasasından ilgili iş ayrıntılarını almak için cmdlet'ini kullanın.

$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService  -Operation OnDemandBackup

Sonraki adımlar