إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية تكوين خدمة Azure Kubernetes (AKS) ونسخها احتياطيا باستخدام Azure CLI. يمكنك أيضا نسخ AKS احتياطيا باستخدام Azure PowerShell.
يسمح لك Azure Backup الآن بنسخ مجموعات AKS احتياطيا (موارد نظام المجموعة ووحدات التخزين الثابتة المرفقة بالمجموعة) باستخدام ملحق النسخ الاحتياطي، والذي يجب تثبيته في نظام المجموعة. يتصل مخزن النسخ الاحتياطي مع نظام المجموعة عبر ملحق النسخ الاحتياطي هذا لتنفيذ عمليات النسخ الاحتياطي والاستعادة.
قبل أن تبدأ
حاليا، يدعم النسخ الاحتياطي ل AKS وحدات التخزين الثابتة المستندة إلى قرص Azure (التي تم تمكينها بواسطة برنامج تشغيل CSI) فقط. يتم تخزين النسخ الاحتياطية فقط في مخزن البيانات التشغيلي (في المستأجر الخاص بك) ولا يتم نقلها إلى مخزن. يجب أن يكون مخزن النسخ الاحتياطي والمجموعة AKS في نفس المنطقة.
يستخدم النسخ الاحتياطي ل AKS حاوية كائن ثنائي كبير الحجم ومجموعة موارد لتخزين النسخ الاحتياطية. تحتوي حاوية كائن ثنائي كبير الحجم على موارد نظام مجموعة AKS المخزنة فيها، بينما يتم تخزين لقطات وحدة التخزين الثابتة في مجموعة الموارد. يجب أن تتواجد مجموعة AKS ومواقع التخزين في نفس المنطقة. تعرف على كيفية إنشاء حاوية كائن ثنائي كبير الحجم.
حاليا، يدعم النسخ الاحتياطي ل AKS النسخ الاحتياطي مرة واحدة في اليوم. كما أنه يدعم النسخ الاحتياطية الأكثر تكرارا (في كل 4 و8 و12 ساعة) في اليوم. يتيح لك هذا الحل الاحتفاظ ببياناتك لاستعادتها لمدة تصل إلى 360 يوماً. تعلم كيفية إنشاء نهج النسخ الاحتياطي.
يجب تثبيت ملحق النسخ الاحتياطي لتكوين عمليات النسخ الاحتياطي والاستعادة على نظام مجموعة AKS. تعرف على المزيد حول ملحق النسخ الاحتياطي.
تأكد من تسجيل
Microsoft.KubernetesConfigurationMicrosoft.DataProtectionوMicrosoft.ContainerServiceلاشتراكك قبل بدء تكوين النسخ الاحتياطي وعمليات الاستعادة.تأكد من تنفيذ جميع المتطلبات الأساسية قبل بدء عملية النسخ الاحتياطي أو الاستعادة للنسخ الاحتياطي ل AKS.
لمزيد من المعلومات حول السيناريوهات والقيود والتوافر المدعومة، راجع مصفوفة الدعم.
إنشاء مخزن للنسخ الاحتياطي
مخزن النسخ الاحتياطي هو كيان إدارة في Azure يخزن بيانات النسخ الاحتياطي لمختلف أحمال العمل الأحدث التي يدعمها Azure Backup، مثل قاعدة بيانات Azure لخوادم PostgreSQL وأقراص Azure. تسهل مخازن Backup تنظيم بيانات النسخ الاحتياطي، مع تقليل النفقات العامة للإدارة. تستند خزائن النسخ الاحتياطي إلى نموذج Azure Resource Manager من Azure، والذي يوفر قدرات محسنة للمساعدة في تأمين بيانات النسخ الاحتياطي.
قبل إنشاء مخزن النسخ الاحتياطي، اختر تكرار تخزين البيانات في المخزن، ثم قم بإنشاء مخزن النسخ الاحتياطي مع تكرار التخزين والموقع. تعرف على المزيد حول إنشاء مخزن النسخ الاحتياطي.
إشعار
على الرغم من أن المخزن المحدد قد يحتوي على إعداد التكرار العمومي، فإن النسخ الاحتياطي ل AKS يدعم حاليا المستوى التشغيلي فقط. يتم تخزين جميع النسخ الاحتياطية في اشتراكك في نفس المنطقة مثل مجموعة AKS، ولا يتم نسخها إلى تخزين مخزن النسخ الاحتياطي.
لإنشاء مخزن النسخ الاحتياطي، قم بتشغيل الأمر التالي:
az dataprotection backup-vault create --resource-group $backupvaultresourcegroup --vault-name $backupvault --location $region --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
بمجرد اكتمال إنشاء المخزن، قم بإنشاء نهج نسخ احتياطي لحماية مجموعات AKS.
إنشاء سياسة النسخ احتياطي
لفهم المكونات الداخلية لنهج النسخ الاحتياطي للنسخ الاحتياطي ل AKS، قم باسترداد قالب النهج باستخدام الأمر az dataprotection backup-policy get-default-policy-template. يقوم هذا الأمر بإرجاع قالب نهج افتراضي لنوع مصدر بيانات محدد. استخدم قالب النهج هذا لإنشاء نهج جديد.
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"
}
]
}
يتكون قالب النهج من معايير المشغل (التي تقرر عوامل تشغيل مهمة النسخ الاحتياطي) ودورة حياة (التي تقرر متى يتم حذف النسخ الاحتياطية أو نسخها أو نقلها). في النسخ الاحتياطي ل AKS، القيمة الافتراضية للمشغل هي مشغل مجدول كل ساعة كل 4 ساعات (PT4H) والاحتفاظ بكل نسخة احتياطية سبعة أيام.
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"
}
}
]
يوفر النسخ الاحتياطي ل AKS نسخا احتياطية متعددة يوميا. إذا كنت تحتاج إلى نسخ احتياطية أكثر تكرارا، فاختر تردد النسخ الاحتياطي بالساعة الذي لديه القدرة على أخذ النسخ الاحتياطية بفواصل زمنية كل 4 أو 6 أو 8 أو 12 ساعة. تتم جدولة النسخ الاحتياطية استنادا إلى الفاصل الزمني الذي حددته.
هام
الوقت من اليوم يشير إلى وقت بدء النسخ الاحتياطي وليس وقت اكتمال النسخ الاحتياطي.
يتبع جدول النسخ الاحتياطي تنسيق مدة ISO 8601. ومع ذلك، بادئة R الفاصل الزمني المكررة غير مدعومة، حيث يتم تكوين النسخ الاحتياطية لتشغيلها إلى أجل غير مسمى. سيتم تجاهل أي قيمة محددة بها R .
بمجرد تنزيل القالب كملف JSON، يمكنك تحريره للجدولة والاحتفاظ به كما هو مطلوب. ثم قم بإنشاء نهج جديد باستخدام JSON الناتجة. إذا كنت تريد تحرير التردد بالساعة أو فترة الاستبقاء، فاستخدم az dataprotection backup-policy trigger set الأمرين و/أو az dataprotection backup-policy retention-rule set .
إشعار
لتخزين بيانات النسخ الاحتياطي في طبقة Vault إما للاحتفاظ بها على المدى الطويل لغرض التوافق أو للتعافي من الكوارث الإقليمية عبر الاستعادة عبر المنطقة، ستحتاج إلى تحديد قاعدة استبقاء جديدة في القالب الافتراضي لتحديد المدة التي يجب تخزين النسخ الاحتياطي فيها في Vault.
لنأخذ مثالا حيث سنقوم بتحديث القالب الافتراضي لنهج النسخ الاحتياطي وإضافة قاعدة استبقاء للاحتفاظ بأول نسخة احتياطية ناجحة يوميا في طبقة Vault لمدة 30 يوما.
استخدم الأمر az dataprotection backup-policy retention-rule create-lifecycle لإنشاء قاعدة استبقاء ثم أضف قاعدة الاستبقاء إلى قالب نهج النسخ الاحتياطي باستخدام الأمر ''
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
بمجرد أن يحتوي نهج JSON على جميع القيم المطلوبة، تابع لإنشاء نهج جديد من كائن النهج باستخدام az dataprotection backup-policy create الأمر .
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy policy.json
إعداد نظام مجموعة AKS للنسخ الاحتياطي
بمجرد اكتمال إنشاء المخزن والنهج، تحتاج إلى تنفيذ المتطلبات الأساسية التالية للحصول على مجموعة AKS جاهزة للنسخ الاحتياطي:
إنشاء حساب تخزين وحاوية كائن ثنائي كبير الحجم.
يخزن النسخ الاحتياطي ل AKS موارد Kubernetes في حاوية كائن ثنائي كبير الحجم كنسخ احتياطية. للحصول على مجموعة AKS جاهزة للنسخ الاحتياطي، تحتاج إلى تثبيت ملحق في نظام المجموعة. يتطلب هذا الملحق حساب التخزين وحاوية blob كمدخلات.
لإنشاء حساب تخزين جديد، قم بتشغيل الأمر التالي:
az storage account create --name $storageaccount --resource-group $storageaccountresourcegroup --location $region --sku Standard_LRSبمجرد اكتمال إنشاء حساب التخزين، قم بإنشاء حاوية كائن ثنائي كبير الحجم داخل عن طريق تشغيل الأمر التالي:
az storage container create --name $blobcontainer --account-name $storageaccount --auth-mode loginتعرف على كيفية تمكين ميزات معينة أو تعطيلها، مثل نقطة النهاية الخاصة، أثناء إنشاء حساب تخزين وحاوية كائن ثنائي كبير الحجم.
إشعار
- يجب أن يكون حساب التخزين والمجموعة AKS في نفس المنطقة والاشتراك.
- يجب ألا تحتوي حاوية الكائن الثنائي كبير الحجم على أي أنظمة ملفات تم إنشاؤها مسبقا (باستثناء التي تم إنشاؤها بواسطة النسخ الاحتياطي ل AKS).
- إذا كان نظام مجموعة AKS المصدر أو الهدف الخاص بك في شبكة ظاهرية خاصة، فأنت بحاجة إلى إنشاء نقطة نهاية خاصة لتوصيل حساب التخزين بمجموعة AKS.
تثبيت ملحق النسخ الاحتياطي.
ملحق النسخ الاحتياطي إلزامي ليتم تثبيته في نظام مجموعة AKS لتنفيذ أي عمليات النسخ الاحتياطي والاستعادة. ينشئ ملحق النسخ الاحتياطي مساحة
dataprotection-microsoftاسم في نظام المجموعة ويستخدم نفس الشيء لنشر موارده. يتطلب الملحق حساب التخزين وحاوية blob كمدخلات للتثبيت.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
في حالة وجود نظام مجموعة AKS داخل شبكة ظاهرية، سيتعين عليك إنشاء نقطة نهاية خاصة، وتوصيل حساب التخزين بالشبكة الظاهرية التي يوجد بها نظام مجموعة 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"
كجزء من تثبيت الملحق، يتم إنشاء هوية مستخدم في مجموعة موارد تجمع العقدة الخاصة بمجموعة AKS. للحصول على الملحق للوصول إلى حساب التخزين، تحتاج إلى توفير هذه الهوية دور Storage Blob Data Contributor . لتعيين الدور المطلوب، قم بتشغيل الأمر التالي:
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
تمكين الوصول الموثوق به
لكي يتصل مخزن النسخ الاحتياطي بمجموعة AKS، يجب تمكين الوصول الموثوق به لأنه يسمح لمخزن النسخ الاحتياطي أن يكون له خط رؤية مباشر لمجموعة AKS.
لتمكين الوصول الموثوق به، قم بتشغيل الأمر التالي:
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
تكوين النسخ الاحتياطي
باستخدام مخزن النسخ الاحتياطي ونهج النسخ الاحتياطي الذي تم إنشاؤه، والمجموعة AKS في حالة جاهزة للنسخ الاحتياطي ، يمكنك الآن البدء في نسخ نظام مجموعة AKS احتياطيا.
إعداد الطلب
يتم تنفيذ تكوين النسخ الاحتياطي في خطوتين:
إعداد تكوين النسخ الاحتياطي لتحديد موارد نظام المجموعة التي سيتم نسخها احتياطيا باستخدام
az dataprotection backup-instance initialize-backupconfigالأمر . ينشئ الأمر JSON، والذي يمكنك تحديثه لتعريف تكوين النسخ الاحتياطي لمجموعة AKS الخاصة بك كما هو مطلوب.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 }
يتم تخطي مساحات الأسماء التالية من تكوين النسخ الاحتياطي ولم يتم تكوينها للنسخ الاحتياطية: kube-system، kube-node-lease، kube-public.
قم بإعداد الطلب ذي الصلة باستخدام المخزن ذي الصلة والنهج ومجموعة AKS وتكوين النسخ الاحتياطي ومجموعة موارد اللقطة
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
الآن، استخدم إخراج JSON لهذا الأمر لتكوين النسخ الاحتياطي لنظام مجموعة AKS.
تعيين الأذونات المطلوبة والتحقق من صحتها
يستخدم مخزن النسخ الاحتياطي هوية مُدارة للوصول إلى موارد Azure الأخرى. لتكوين النسخ الاحتياطي لمجموعة AKS، تتطلب الهوية المدارة لمخزن النسخ الاحتياطي مجموعة من الأذونات على مجموعة AKS ومجموعات الموارد، حيث يتم إنشاء اللقطات وإدارتها. أيضا، يتطلب نظام مجموعة AKS إذنا في مجموعة موارد اللقطة.
فقط، الهوية المدارة المعينة من قبل النظام مدعومة حاليا للنسخ الاحتياطي (كل من مخزن النسخ الاحتياطي ونظام مجموعة AKS). يتم تقييد الهوية المُدارة المعينة من قبل النظام بواحد لكل مورد وهي مرتبطة بدورة حياة هذا المورد. يمكنك منح أذونات للهوية المدارة باستخدام عنصر التحكم في الوصول استنادًا إلى الدور (Azure RBAC). الهوية المدارة هي كيان خدمة من نوع خاص يمكن استخدامه فقط مع موارد Azure. تعرف على المزيد حول الهويات المدارة.
مع إعداد الطلب، تحتاج أولا إلى التحقق من صحة ما إذا تم تعيين الأدوار المطلوبة للموارد المذكورة أعلاه عن طريق تشغيل الأمر التالي:
az dataprotection backup-instance validate-for-backup --backup-instance ./backupinstance.json --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault
إذا فشل التحقق من الصحة وكانت هناك أذونات معينة مفقودة، يمكنك تعيينها عن طريق تشغيل الأمر التالي:
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
بمجرد تعيين الأذونات، أعد التحقق باستخدام التحقق من صحة الأمر التالي للنسخ الاحتياطي :
az dataprotection backup-instance create --backup-instance backupinstance.json --resource-group $backupvaultresourcegroup --vault-name $backupvault
ثم قم بإجراء النسخ الاحتياطي حسب الطلب
لإحضار مثيل النسخ الاحتياطي ذي الصلة الذي تريد تشغيل نسخة احتياطية عليه 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
الآن، قم بتشغيل نسخة احتياطية عند الطلب لمثيل النسخ الاحتياطي عن طريق تشغيل الأمر التالي:
az dataprotection backup-instance adhoc-backup --rule-name "BackupDaily" --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupInstances/$backupinstanceid
تتبع الوظائف
تعقب مهام النسخ الاحتياطي التي az dataprotection job تشغل الأمر. يمكنك سرد جميع الوظائف وجلب تفاصيل مهمة معينة.
يمكنك أيضا استخدام Resource Graph لتعقب جميع المهام عبر جميع الاشتراكات ومجموعات الموارد وخزائن النسخ الاحتياطي عن طريق تشغيل az dataprotection job list-from-resourcegraph الأمر للحصول على المهمة ذات الصلة
للنسخ الاحتياطي عند الطلب:
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation OnDemandBackup
للنسخ الاحتياطي المجدول:
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation ScheduledBackup
الخطوات التالية
- استعادة نظام مجموعة خدمة Azure Kubernetes باستخدام Azure CLI وAzure PowerShell
- إدارة النسخ الاحتياطية لنظام مجموعة Azure Kubernetes Service
- حول النسخ الاحتياطي لنظام مجموعة Azure Kubernetes Service