استكشاف أخطاء النسخ الاحتياطي والاستعادة لخدمة Azure Kubernetes وإصلاحها

توفر هذه المقالة خطوات استكشاف الأخطاء وإصلاحها التي تساعدك على حل أخطاء النسخ الاحتياطي والاستعادة والإدارة لخدمة Azure Kubernetes (AKS).

تحليلات أخطاء تثبيت ملحق النسخ الاحتياطي AKS

السيناريو 1

رسالة الخطأ:

{Helm installation from path [] for release [azure-aks-backup] failed with the following error: err [release azure-aks-backup failed, and has been uninstalled due to atomic being set: failed post-install: timed out waiting for the condition]} occurred while doing the operation: {Installing the extension} on the config"`

السبب: تم تثبيت الملحق بنجاح، ولكن لا يتم إنتاج الحجيرات لأن الحوسبة والذاكرة المطلوبين غير متوفرين للجرابات.

الحل: لحل المشكلة، قم بزيادة عدد العقد في نظام المجموعة، ما يسمح بتوفر حوسبة وذاكرة كافية للجرابات ليتم إنتاجها. لتوسيع نطاق تجمع العقد على مدخل Microsoft Azure، اتبع الخطوات التالية:

  1. في مدخل Microsoft Azure، افتح نظام مجموعة AKS.
  2. انتقل إلى تجمعات العقدة ضمن الإعدادات.
  3. حدد Scale node pool، ثم قم بتحديث القيم الدنيا والحد الأقصى في نطاق عدد العقد.
  4. حدد تطبيق.

السيناريو 2

رسالة الخطأ:

BackupStorageLocation "default" is unavailable: rpc error: code = Unknown desc = azure.BearerAuthorizer#WithAuthorization: Failed to refresh the Token for request to https://management.azure.com/subscriptions/e30af180-aa96-4d81-981a-b67570b0d615/resourceGroups/AzureBackupRG_westeurope_1/providers/Microsoft.Storage/storageAccounts/devhayyabackup/listKeys?%24expand=kerb&api-version=2019-06-01: StatusCode=404 -- Original Error: adal: Refresh request failed. Status Code = '404'. Response body: no azure identity found for request clientID 4e95##### REDACTED #####0777`

Endpoint http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&client_id=4e95dcc5-a769-4745-b2d9-

السبب: عند تمكين الهوية المدارة بواسطة pod على نظام مجموعة AKS، تتم إضافة AzurePodIdentityException المسمى aks-addon-exception إلى مساحة اسم نظام kube. يسمح AzurePodIdentityException للقرون ذات تسميات معينة بالوصول إلى نقطة نهاية Azure Instance Metadata Service (IMDS) لا يعترضها خادم NMI.

لا يتم إعفاء pods الملحقة، وتتطلب تمكين هوية Microsoft Entra pod يدويا.

الحل: إنشاء استثناء pod-identity في نظام مجموعة AKS (الذي يعمل فقط لمساحة اسم dataprotection-microsoft وليس لنظام kube). اعرف المزيد.

  1. شغّل الأمر التالي:

    az aks pod-identity exception add --resource-group shracrg --cluster-name shractestcluster --namespace dataprotection-microsoft --pod-labels app.kubernetes.io/name=dataprotection-microsoft-kubernetes
    
  2. للتحقق من Azurepodidentityexceptions في نظام المجموعة، قم بتشغيل الأمر التالي:

    kubectl get Azurepodidentityexceptions --all-namespaces
    
  3. لتعيين دور Storage Blob Data Contributor إلى هوية الملحق، قم بتشغيل الأمر التالي:

    az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name aksclustername --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/storageaccountname
    

السيناريو 3

رسالة الخطأ:

{"Message":"Error in the getting the Configurations: error {Post \https://centralus.dp.kubernetesconfiguration.azure.com/subscriptions/ subscriptionid /resourceGroups/ aksclusterresourcegroup /provider/managedclusters/clusters/ aksclustername /configurations/getPendingConfigs?api-version=2021-11-01\: dial tcp: lookup centralus.dp.kubernetesconfiguration.azure.com on 10.63.136.10:53: no such host}","LogType":"ConfigAgentTrace","LogLevel":"Error","Environment":"prod","Role":"ClusterConfigAgent","Location":"centralus","ArmId":"/subscriptions/ subscriptionid /resourceGroups/ aksclusterresourcegroup /providers/Microsoft.ContainerService/managedclusters/ aksclustername ","CorrelationId":"","AgentName":"ConfigAgent","AgentVersion":"1.8.14","AgentTimestamp":"2023/01/19 20:24:16"}`

السبب: قواعد FQDN/التطبيق المحددة مطلوبة لاستخدام ملحقات نظام المجموعة في مجموعات AKS. اعرف المزيد.

يظهر هذا الخطأ بسبب عدم وجود قواعد FQDN هذه بسبب معلومات التكوين من خدمة ملحقات نظام المجموعة غير متوفرة.

الحل: لحل المشكلة، تحتاج إلى إنشاء تجاوز مخصص ل CoreDNS لنقطة نهاية DP للتمرير عبر الشبكة العامة.

  1. الحصول على YAML المخصص ل CoreDNS الموجود في مجموعتك (احفظه على جهازك المحلي للرجوع إليه لاحقا)::

    kubectl get configmap coredns-custom -n kube-system -o yaml
    
  2. تجاوز تعيين نقطة نهاية centralus DP إلى IP العام (استخدم YAML أدناه):

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: coredns-custom 
      namespace: kube-system
    data:
        aksdp.override: |
              hosts { 
                  20.40.200.153 centralus.dp.kubernetesconfiguration.azure.com
                  fallthrough
               }
    

    الآن قم بتشغيل الأمر أدناه لتطبيق ملف yaml للتحديث:

    kubectl apply -f corednsms.yaml
    
  3. لفرض إعادة تحميل coredns الحجيرات، قم بتشغيل الأمر التالي:

    kubectl delete pod --namespace kube-system -l k8s-app=kube-dns
    
  4. لإجراء من NSlookup جراب ExtensionAgent للتحقق مما إذا كان coreDNS-custom يعمل، قم بتشغيل الأمر التالي:

    kubectl exec -i -t pod/extension-agent-<pod guid that's there in your cluster> -n kube-system -- nslookup centralus.dp.kubernetesconfiguration.azure.com
    
  5. للتحقق من سجلات وحدة ExtensionAgent ، قم بتشغيل الأمر التالي:

    kubectl logs pod/extension-agent-<pod guid that’s there in your cluster> -n kube-system --tail=200
    
  6. حذف ملحق النسخ الاحتياطي وإعادة تثبيته لبدء النسخ الاحتياطي.

أخطاء متعلقة بالتثبيت بعد ملحق النسخ الاحتياطي

تظهر رموز الخطأ هذه بسبب مشكلات في ملحق النسخ الاحتياطي المثبت في نظام مجموعة AKS.

KubernetesBackupListExtensionsError:

السبب: مخزن النسخ الاحتياطي كجزء من التحقق من الصحة، يتحقق مما إذا كان نظام المجموعة يحتوي على ملحق النسخ الاحتياطي مثبت. لهذا، يحتاج Vault MSI إلى إذن قارئ على نظام مجموعة AKS يسمح له بإدراج جميع الملحقات المثبتة في نظام المجموعة.

الإجراء الموصى به: أعد تعيين دور القارئ إلى Vault MSI (قم بإزالة تعيين الدور الموجود وتعيين دور القارئ مرة أخرى)، لأن دور القارئ المعين يفتقد إذن ملحق القائمة فيه. إذا فشلت إعادة التعيين، فاستخدم مخزن نسخ احتياطي مختلف لتكوين النسخ الاحتياطي.

UserErrorKubernetesBackupExtensionNotFoundError

السبب: مخزن النسخ الاحتياطي كجزء من التحقق من الصحة، يتحقق مما إذا كان نظام المجموعة يحتوي على ملحق النسخ الاحتياطي مثبتا. يقوم المخزن بإجراء عملية لسرد الملحقات المثبتة في نظام المجموعة. إذا كان ملحق النسخ الاحتياطي غير موجود في القائمة، يظهر هذا الخطأ.

الإجراء الموصى به: استخدم عميل مدخل CL أو Azure لحذف الملحق، ثم قم بتثبيت الملحق مرة أخرى.

UserErrorKubernetesBackupExtensionHasErrors

السبب: يحتوي ملحق النسخ الاحتياطي المثبت في نظام المجموعة على بعض الأخطاء الداخلية.

الإجراء الموصى به: استخدم عميل مدخل CL أو Azure لحذف الملحق، ثم قم بتثبيت الملحق مرة أخرى.

UserErrorKubernetesBackupExtensionIdentityNotFound

السبب: يتطلب النسخ الاحتياطي ل AKS ملحق النسخ الاحتياطي المثبت في نظام المجموعة. يحتوي الملحق إلى جانب تثبيته على هوية مستخدم تم إنشاؤها تسمى ملحق MSI. يتم إنشاء MSI هذا في مجموعة الموارد التي تضم تجمعات العقد لنظام مجموعة AKS. يحصل MSI هذا على الأدوار المطلوبة المعينة للوصول إلى موقع تخزين النسخ الاحتياطي. يشير رمز الخطأ إلى أن هوية الملحق مفقودة.

الإجراء الموصى به: استخدم CLI أو عميل مدخل Azure لحذف الملحق، ثم قم بتثبيت الملحق مرة أخرى. يتم إنشاء هوية جديدة مع الملحق.

KubernetesBackupCustomResourcesTrackingTimeOutError

السبب: يتطلب Azure Backup ل AKS تثبيت ملحق النسخ الاحتياطي في نظام المجموعة. لتنفيذ عمليات النسخ الاحتياطي والاستعادة، يتم إنشاء موارد مخصصة في نظام المجموعة. القرون ذات الامتداد التي تقوم بإجراء عمليات النسخ الاحتياطي ذات الصلة عبر CRs هذه. يحدث هذا الخطأ عندما لا يتمكن الملحق من تحديث حالة CRs هذه.

الإجراء الموصى به: يلزم التحقق من صحة الملحق عن طريق تشغيل الأمر kubectl get pods -n dataprotection.microsoft. إذا لم تكن الحجيرات في حالة التشغيل، فقم بزيادة عدد العقد في نظام المجموعة بمقدار 1 أو زيادة حدود الحوسبة. ثم انتظر بضع دقائق ثم قم بتشغيل الأمر مرة أخرى، والذي يجب أن يغير حالة pods إلى قيد التشغيل. إذا استمرت المشكلة، فاحذف الملحق وأعد تثبيته.

BackupPluginPodRestartedDuringBackupError

السبب: تواجه حاوية ملحق النسخ الاحتياطي (dataprotection-microsoft-kubernetes-agent) في نظام مجموعة AKS عدم الاستقرار بسبب عدم كفاية موارد وحدة المعالجة المركزية/الذاكرة على العقدة الحالية، مما يؤدي إلى إيقاف حوادث OOM (نفاد الذاكرة). قد يكون هذا بسبب انخفاض الحوسبة المطلوبة من قبل جراب ملحق النسخ الاحتياطي.

الإجراء الموصى به: لمعالجة ذلك، نوصي بزيادة قيم الحوسبة المخصصة لهذا الجراب. من خلال القيام بذلك، سيتم توفيره تلقائيا على عقدة مختلفة داخل مجموعة AKS الخاصة بك مع موارد حوسبة وافرة متاحة.

القيمة الحالية للحساب لهذا الجراب هي:

resources.requests.cpu هو 500m resources.requests.memory هو 128Mi يرجى تعديل تخصيص الذاكرة إلى 512Mi عن طريق تحديث المعلمة 'resources.requests.memory'. إذا استمرت المشكلة، فمن المستحسن زيادة المعلمة "resources.requests.cpu" إلى 900m، بعد تخصيص الذاكرة. يمكنك زيادة قيم المعلمات باتباع الخطوات التالية:

  1. انتقل إلى جزء نظام مجموعة AKS في مدخل Microsoft Azure.
  2. انقر فوق "Extensions+Applications" وحدد ملحق "azure-aks-backup".
  3. قم بتحديث إعدادات التكوين في المدخل عن طريق إضافة زوج قيم المفاتيح التالي. resources.requests.cpu 900m resources.requests.memory 512Mi

BackupPluginDeleteBackupOperationFailed

السبب: يجب تشغيل ملحق النسخ الاحتياطي لحذف النسخ الاحتياطية.

الإجراء الموصى به: إذا كان نظام المجموعة قيد التشغيل، فتحقق مما إذا كان الملحق قيد التشغيل في حالة صحية. تحقق مما إذا كانت pods الملحقة تفرخ، وإلا، فقم بزيادة العقد. إذا فشل ذلك، فحاول حذف الملحق وإعادة تثبيته. إذا تم حذف المجموعة التي تم نسخها احتياطيا، فحذف اللقطات وبيانات التعريف يدويا.

ExtensionTimedOutWaitingForBackupItemSync

السبب: ينتظر ملحق النسخ الاحتياطي مزامنة عناصر النسخ الاحتياطي مع حساب التخزين.

الإجراء الموصى به: إذا ظهر رمز الخطأ هذا، فقم بإعادة محاولة عملية النسخ الاحتياطي أو إعادة تثبيت الملحق.

الأخطاء المستندة إلى موقع تخزين النسخ الاحتياطي

تظهر رموز الخطأ هذه بسبب مشكلات تستند إلى ملحق النسخ الاحتياطي المثبت في نظام مجموعة AKS.

UserErrorDeleteBackupFailedBackupStorageLocationReadOnly

السبب: حساب التخزين المقدم كمدخل أثناء تثبيت ملحق النسخ الاحتياطي في حالة القراءة فقط ، والتي لا تسمح بحذف بيانات النسخ الاحتياطي من حاوية كائن ثنائي كبير الحجم.

الإجراء الموصى به: تغيير حالة حساب التخزين من القراءة فقط إلى الكتابة.

UserErrorDeleteBackupFailedBackupStorageLocationNotFound

السبب: أثناء تثبيت الملحق، يتم توفير موقع تخزين النسخ الاحتياطي كإدخل يتضمن حساب تخزين وحاوية كائن ثنائي كبير الحجم. يظهر هذا الخطأ إذا تم حذف الموقع أو إضافته بشكل غير صحيح أثناء تثبيت الملحق.

الإجراء الموصى به: احذف ملحق النسخ الاحتياطي، ثم أعد تثبيته باستخدام حساب التخزين الصحيح وحاوية الكائن الثنائي كبير الحجم كإدخال.

UserErrorBackupFailedBackupStorageLocationReadOnly

السبب: حساب التخزين المقدم كمدخل أثناء تثبيت ملحق النسخ الاحتياطي في حالة القراءة فقط ، والتي لا تسمح بكتابة بيانات النسخ الاحتياطي على حاوية كائن ثنائي كبير الحجم.

الإجراء الموصى به: تغيير حالة حساب التخزين من القراءة فقط إلى الكتابة.

UserErrorNoDefaultBackupStorageLocationFound

السبب: أثناء تثبيت الملحق، يتم توفير موقع تخزين النسخ الاحتياطي كمدخل، والذي يتضمن حساب تخزين وحاوية كائن ثنائي كبير الحجم. يظهر الخطأ إذا تم حذف الموقع أو إدخاله بشكل غير صحيح أثناء تثبيت الملحق.

الإجراء الموصى به: احذف ملحق النسخ الاحتياطي، ثم أعد تثبيته باستخدام حساب التخزين الصحيح وحاوية الكائن الثنائي كبير الحجم كإدخال.

UserErrorExtensionMSIMissingPermissionsOnBackupStorageLocation

السبب: يجب أن يكون لملحق النسخ الاحتياطي دور Storage Blob Data Contributor في موقع تخزين النسخ الاحتياطي (حساب التخزين). تحصل هوية الملحق على هذا الدور المعين.

الإجراء الموصى به: إذا كان هذا الدور مفقودا، فاستخدم مدخل Microsoft Azure أو CLI لإعادة تعيين هذا الإذن المفقود على حساب التخزين.

UserErrorBackupStorageLocationNotReady

السبب: أثناء تثبيت الملحق، يتم توفير موقع تخزين النسخ الاحتياطي كإدخل يتضمن حساب تخزين وحاوية كائن ثنائي كبير الحجم. يجب أن يكون لملحق النسخ الاحتياطي دور Storage Blob Data Contributor في موقع تخزين النسخ الاحتياطي (حساب التخزين). تحصل هوية الملحق على هذا الدور المعين.

الإجراء الموصى به: يظهر الخطأ إذا لم يكن لهوية الملحق الأذونات الصحيحة للوصول إلى حساب التخزين. يظهر هذا الخطأ إذا تم تثبيت ملحق النسخ الاحتياطي AKS في المرة الأولى عند تكوين عملية الحماية. يحدث هذا للوقت المستغرق للأذونات الممنوحة للنشر إلى ملحق النسخ الاحتياطي AKS. كحل بديل، انتظر ساعة وأعد محاولة تكوين الحماية. وإلا، استخدم مدخل Microsoft Azure أو CLI لإعادة تعيين هذا الإذن المفقود على حساب التخزين.

UserErrorSnapshotResourceGroupHasLocks

السبب: يظهر رمز الخطأ هذا عند تطبيق تأمين الحذف أو القراءة على مجموعة موارد اللقطة المقدمة كمدخل لملحق النسخ الاحتياطي.

الإجراء الموصى به: في حالة تكوين مثيل نسخ احتياطي جديد، استخدم مجموعة موارد دون قفل حذف أو قراءة. إذا كان مثيل النسخ الاحتياطي قد تم تكوينه بالفعل، فقم بإزالة التأمين من مجموعة موارد اللقطة.

الأخطاء المستندة إلى النسخ الاحتياطي المخزن

يمكن أن تظهر رموز الخطأ هذه أثناء تمكين النسخ الاحتياطي ل AKS لتخزين النسخ الاحتياطية في مخزن بيانات قياسي للمخزن.

DppUserErrorVaultTierPolicyNotSupported

السبب: يظهر رمز الخطأ هذا عند إنشاء نهج نسخ احتياطي مع قاعدة استبقاء محددة لمخزن البيانات القياسي للمخزن لمخزن النسخ الاحتياطي في منطقة لا يدعم فيها مخزن البيانات هذا.

الإجراء الموصى به: تحديث قاعدة الاستبقاء بمدة قياسية للمخزن محددة على مدخل Microsoft Azure:

  1. حدد تحرير أيقونة بجوار القاعدة.

    لقطة شاشة توضح كيفية تحرير مدة الاحتفاظ بالنسخ الاحتياطية ل AKS.

  2. قم بإلغاء تحديد خانة الاختيار بجوار Vault-standard، ثم حدد Update.

    تظهر لقطة الشاشة إلغاء تحديد خانة الاختيار القياسية للمخزن.

  3. إنشاء نهج نسخ احتياطي للنسخ الاحتياطي للمستوى التشغيلي (لقطات فقط لمجموعة AKS).

اكتملت مهام النسخ الاحتياطي والاستعادة ل AKS مع التحذيرات

UserErrorPVSnapshotDisallowedByPolicy

رمز الخطأ: UserErrorPVSnapshotDisallowedByPolicy

السبب: يتم تعيين نهج Azure عبر الاشتراك الذي يوقف برنامج تشغيل CSI لأخذ لقطة وحدة التخزين.

الإجراء الموصى به: قم بإزالة نهج Azure التي توقف عملية لقطة القرص، ثم قم بإجراء نسخة احتياطية عند الطلب.

UserErrorPVSnapshotLimitReached

رمز الخطأ: UserErrorPVSnapshotLimitReached

السبب: هناك عدد محدود من اللقطات لوحدات التخزين الثابتة التي يمكن أن توجد في نقطة زمنية. بالنسبة لوحدات التخزين الثابتة المستندة إلى قرص Azure، الحد هو 500 لقطة. يظهر هذا الخطأ عندما لا يتم أخذ لقطات لوحدات تخزين ثابتة معينة بسبب وجود لقطات أعلى من الحدود المدعومة.

الإجراء الموصى به: قم بتحديث نهج النسخ الاحتياطي لتقليل مدة الاستبقاء وانتظر حتى يحذف Backup Vault نقاط الاسترداد الأقدم.

CSISnapshottingTimedOut

رمز الخطأ: CSISnapshottingTimedOut

السبب: فشلت اللقطة لأن برنامج تشغيل CSI قد تم انتهاء مهلته لجلب مقبض اللقطة.

الإجراء الموصى به: راجع السجلات وأعد محاولة العملية للحصول على لقطات ناجحة عن طريق تشغيل نسخة احتياطية عند الطلب، أو انتظر النسخ الاحتياطي المجدول التالي.

UserErrorHookExecutionFailed

رمز الخطأ: UserErrorHookExecutionFailed

السبب: عندما تواجه الخطافات المطبقة للتشغيل جنبا إلى جنب مع النسخ الاحتياطية والاستعادة خطأ، ولا يتم تطبيقها بنجاح.

الإجراء الموصى به: راجع السجلات، وقم بتحديث الخطافات، ثم أعد محاولة عملية النسخ الاحتياطي/الاستعادة.

UserErrorNamespaceNotFound

رمز الخطأ: UserErrorNamespaceNotFound

السبب: مساحات الأسماء المتوفرة في تكوين النسخ الاحتياطي مفقودة أثناء إجراء النسخ الاحتياطية. إما أن مساحة الاسم تم توفيرها بشكل خاطئ أو تم حذفها.

الإجراء الموصى به: تحقق مما إذا كانت مساحات الأسماء التي سيتم نسخها احتياطيا متوفرة بشكل صحيح.

UserErrorPVCHasNoVolume

رمز الخطأ: UserErrorPVCHasNoVolume

السبب: لا تحتوي مطالبة وحدة التخزين الدائمة (PVC) في السياق على وحدة تخزين ثابتة مرفقة بها. لذا، لن يتم نسخ PVC احتياطيا.

الإجراء الموصى به: إرفاق وحدة تخزين إلى PVC، إذا كان يحتاج إلى نسخ احتياطي.

UserErrorPVCNotBoundToVolume

رمز الخطأ: UserErrorPVCNotBoundToVolume

السبب: PVC في السياق في حالة معلق ولا يحتوي على وحدة تخزين ثابتة مرفقة به. لذا، لن يتم نسخ PVC احتياطيا.

الإجراء الموصى به: إرفاق وحدة تخزين إلى PVC، إذا كان يحتاج إلى نسخ احتياطي.

UserErrorPVNotFound

رمز الخطأ: UserErrorPVNotFound

السبب: وسيط التخزين الأساسي ل وحدة التخزين الدائمة مفقود.

الإجراء الموصى به: تحقق من وحدة تخزين ثابتة جديدة مرفقة بوسط تخزين فعلي وأرفقها.

UserErrorStorageClassMissingForPVC

رمز الخطأ: UserErrorStorageClassMissingForPVC

السبب: يتحقق النسخ الاحتياطي AKS لفئة التخزين المستخدمة ويتخطى وحدة التخزين الدائمة من أخذ اللقطات بسبب عدم توفر الفئة.

الإجراء الموصى به: تحديث مواصفات PVC باستخدام فئة التخزين المستخدمة.

UserErrorSourceandTargetClusterCRDVersionMismatch

رمز الخطأ: UserErrorSourceandTargetClusterCRDVersionMismatch

السبب: نظام مجموعة AKS المصدر و مجموعة AKS الهدف أثناء الاستعادة لها إصدارات مختلفة من FlowSchema و PriorityLevelConfigurations CRs. لا تتم استعادة بعض موارد Kubernetes بسبب عدم التطابق في إصدارات نظام المجموعة.

الإجراء الموصى به: استخدم نفس إصدار نظام المجموعة لنظام المجموعة الهدف مثل نظام مجموعة المصدر أو قم بتطبيق CRs يدويا.

LinkedAuthorizationFailed

رمز الخطأ: LinkedAuthorizationFailed

السبب: لإجراء عملية استعادة، يحتاج المستخدم إلى الحصول على إذن قراءة عبر مجموعة AKS التي تم نسخها احتياطيا.

الإجراء الموصى به: تعيين دور القارئ على نظام مجموعة AKS المصدر ثم المتابعة لتنفيذ عملية الاستعادة.

الخطوات التالية