Устранение неполадок Служба 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"`
Причина. Расширение установлено успешно, но модули pod не возникают, так как необходимые вычислительные ресурсы и память недоступны для модулей pod.
Решение. Чтобы устранить проблему, увеличьте количество узлов в кластере, что позволяет обеспечить доступность вычислительных ресурсов и памяти для модулей pod. Чтобы масштабировать пул узлов в портал Azure, выполните следующие действия.
- В портал Azure откройте кластер AKS.
- Перейдите в пулы узлов в разделе "Параметры".
- Выберите пул узлов масштабирования, а затем обновите минимальные и максимальные значения в диапазоне счетчиков узлов.
- Выберите Применить.
Сценарий 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 в пространство имен kube-system добавляется azurePodIdentityException с именем aks-addon-exception. AzurePodIdentityException позволяет pod с определенными метками получать доступ к конечной точке службы метаданных экземпляра Azure (IMDS) не перехватывается сервером NMI.
Модули pod расширения не исключаются и требуют, чтобы удостоверение pod Microsoft Entra было включено вручную.
Решение. Создание исключения удостоверений pod в кластере AKS (которое работает только для пространства имен dataprotection-microsoft и не kube-system). Подробнее.
Выполните следующую команду:
az aks pod-identity exception add --resource-group shracrg --cluster-name shractestcluster --namespace dataprotection-microsoft --pod-labels app.kubernetes.io/name=dataprotection-microsoft-kubernetes
Чтобы проверить azurepodidentityexceptions в кластере, выполните следующую команду:
kubectl get Azurepodidentityexceptions --all-namespaces
Чтобы назначить роль участника данных BLOB-объектов хранилища удостоверению расширения, выполните следующую команду:
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"}`
Причина. Для использования расширений кластера в кластерах AKS требуются определенные правила полного доменного имени или приложения. Подробнее.
Эта ошибка возникает из-за отсутствия этих правил полного доменного имени из-за того, какие сведения о конфигурации из службы расширений кластера не были доступны.
Решение. Чтобы устранить проблему, необходимо создать настраиваемую переопределение CoreDNS для конечной точки DP для передачи через общедоступную сеть.
Получите в кластере пользовательский YAML для coreDNS (сохраните его в локальном каталоге позже):
kubectl get configmap coredns-custom -n kube-system -o yaml
Переопределение сопоставления для конечной точки 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
Чтобы принудительно перезагрузить
coredns
модули pod, выполните следующую команду:kubectl delete pod --namespace kube-system -l k8s-app=kube-dns
Чтобы выполнить команду
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
Чтобы проверить журналы модуля Pod ExtensionAgent , выполните следующую команду:
kubectl logs pod/extension-agent-<pod guid that’s there in your cluster> -n kube-system --tail=200
Удалите и переустановите расширение резервного копирования для запуска резервного копирования.
Ошибки, связанные с установкой расширения резервного копирования
Эти коды ошибок появляются из-за проблем с расширением резервного копирования, установленным в кластере AKS.
KubernetesBackupListExtensionsError:
Причина. Резервное хранилище в рамках проверки проверяет, установлен ли кластер с расширением резервного копирования. Для этого MSI Хранилища требуется разрешение на читатель в кластере AKS, позволяющее ему перечислить все расширения, установленные в кластере.
Рекомендуемое действие. Переназначьте роль читателя в MSI хранилища (удалите существующее назначение ролей и снова назначьте роль чтения), так как назначенная роль читателя отсутствует разрешение расширения списка в нем. Если переназначение завершается ошибкой, используйте другое хранилище резервных копий для настройки резервного копирования.
UserErrorKubernetesBackupExtensionNotFoundError
Причина. Резервное хранилище в процессе проверки проверяет, установлен ли кластер расширение резервного копирования. Хранилище выполняет операцию для перечисления расширений, установленных в кластере. Если расширение резервного копирования отсутствует в списке, эта ошибка появится.
Рекомендуемое действие: используйте клиент CL или портал Azure для удаления расширения, а затем снова установите расширение.
UserErrorKubernetesBackupExtensionHasErrors
Причина. Расширение резервного копирования, установленное в кластере, имеет некоторые внутренние ошибки.
Рекомендуемое действие: используйте клиент CL или портал Azure для удаления расширения, а затем снова установите расширение.
UserErrorKubernetesBackupExtensionIdentityNotFound
Причина. Для резервного копирования AKS требуется расширение резервного копирования, установленное в кластере. Расширение вместе с его установкой имеет удостоверение пользователя, созданное с именем MSI расширения. Этот файл MSI создается в группе ресурсов, включающей пулы узлов для кластера AKS. Этот MSI получает необходимые роли, назначенные для доступа к расположению хранилища резервных копий. Код ошибки предполагает, что удостоверение расширения отсутствует.
Рекомендуемое действие. Используйте интерфейс командной строки или клиент портал Azure для удаления расширения, а затем снова установите расширение. Новое удостоверение создается вместе с расширением.
KubernetesBackupCustomResourcesTrackingTimeOutError
Причина. Azure Backup для AKS требует установки расширения резервного копирования в кластере. Для выполнения операций резервного копирования и восстановления в кластере создаются пользовательские ресурсы. Модули pod с расширением, выполняющие операции резервного копирования с помощью этих CR. Эта ошибка возникает, когда расширение не может обновить состояние этих CR.
Рекомендуемое действие. Для проверки работоспособности расширения необходимо выполнить команду kubectl get pods -n dataprotection.microsoft
. Если модули pod не выполняются, увеличьте количество узлов в кластере на 1 или увеличьте пределы вычислений. Затем подождите несколько минут и снова запустите команду, которая должна изменить состояние модулей pod на выполнение. Если проблема сохраняется, удалите и переустановите расширение.
BackupPluginPodRestartedDuringBackupError
Причина: модуль pod расширения резервного копирования (dataprotection-microsoft-kubernetes-agent) в кластере AKS испытывает нестабильность из-за нехватки ресурсов ЦП или памяти на текущем узле, что приводит к убийству инцидентов OOM (вне памяти). Это может быть связано с меньшими вычислительными ресурсами, запрашиваемыми модулем расширения резервного копирования.
Рекомендуемое действие. Чтобы устранить эту проблему, рекомендуется увеличить значения вычислений, выделенные для этого модуля pod. Таким образом, он будет автоматически подготовлен на другом узле в кластере AKS с большим объемом доступных вычислительных ресурсов.
Текущее значение вычислений для этого модуля pod:
resources.requests.cpu — 500 млн resources.requests.memory — 128Mi Kindly, изменив выделение памяти на 512Mi, обновив параметр resources.requests.memory. Если проблема сохраняется, рекомендуется увеличить параметр resources.requests.cpu до 900 млн, после выделения памяти. Чтобы увеличить значения параметров, сделайте следующее:
- Перейдите в колонку кластера AKS в портал Azure.
- Щелкните "Extensions+Applications" и выберите расширение azure-aks-backup.
- Обновите параметры конфигурации на портале, добавив следующую пару "ключ-значение". resources.requests.cpu 900m resources.requests.memory 512Mi
BackupPluginDeleteBackupOperationFailed
Причина: расширение резервного копирования должно выполняться для удаления резервных копий.
Рекомендуемое действие. Если кластер запущен, проверьте, работает ли расширение в работоспособном состоянии. Проверьте, создаются ли модули pod расширения, в противном случае увеличьте узлы. Если это не удается, попробуйте удалить и переустановить расширение. При удалении резервного копирования кластера вручную удалите моментальные снимки и метаданные.
ExtensionTimedOutWaitingForBackupItemSync
Причина. Расширение резервного копирования ожидает синхронизации элементов резервного копирования с учетной записью хранения.
Рекомендуемое действие. Если появится этот код ошибки, повторите операцию резервного копирования или переустановите расширение.
Ошибки, связанные с расположением хранилища резервных копий
Эти коды ошибок появляются из-за проблем, связанных с расширением резервного копирования, установленным в кластере AKS.
UserErrorDeleteBackupFailedBackupStorageLocationReadOnly
Причина. Учетная запись хранения, предоставляемая в качестве входных данных во время установки расширения резервного копирования, находится в состоянии только для чтения, что не позволяет удалять данные резервной копии из контейнера BLOB-объектов.
Рекомендуемое действие. Измените состояние учетной записи хранения только для чтения на запись.
UserErrorDeleteBackupFailedBackupStorageLocationNotFound
Причина. Во время установки расширения расположение хранилища резервных копий должно быть предоставлено в качестве входных данных, включающих учетную запись хранения и контейнер BLOB-объектов. Эта ошибка возникает, если расположение удаляется или неправильно добавляется во время установки расширения.
Рекомендуемое действие. Удалите расширение резервного копирования, а затем переустановите его с правильной учетной записью хранения и контейнером BLOB-объектов в качестве входных данных.
UserErrorBackupFailedBackupStorageLocationReadOnly
Причина. Учетная запись хранения, предоставляемая в качестве входных данных во время установки расширения резервного копирования, находится только в состоянии чтения , что не позволяет записывать данные резервного копирования в контейнер больших двоичных объектов.
Рекомендуемое действие. Измените состояние учетной записи хранения только для чтения на запись.
UserErrorNoDefaultBackupStorageLocationFound
Причина. Во время установки расширения расположение хранилища резервных копий должно быть предоставлено в качестве входных данных, включающее учетную запись хранения и контейнер BLOB-объектов. Ошибка появляется, если расположение удаляется или неправильно введено во время установки расширения.
Рекомендуемое действие. Удалите расширение резервного копирования, а затем переустановите его с правильной учетной записью хранения и контейнером BLOB-объектов в качестве входных данных.
UserErrorExtensionMSIMissingPermissionsOnBackupStorageLocation
Причина. Расширение резервного копирования должно иметь роль участника данных BLOB-объектов хранилища в расположении хранилища резервных копий (учетная запись хранения). Удостоверение расширения получает эту роль.
Рекомендуемое действие. Если эта роль отсутствует, используйте портал Azure или CLI для переназначения этого отсутствующих разрешений в учетной записи хранения.
UserErrorBackupStorageLocationNotReady
Причина. Во время установки расширения расположение хранилища резервных копий должно быть предоставлено в качестве входных данных, включающих учетную запись хранения и контейнер BLOB-объектов. Расширение резервного копирования должно иметь роль участника данных BLOB-объектов хранилища в расположении хранилища резервных копий (учетная запись хранения). Удостоверение расширения получает эту роль.
Рекомендуемое действие. Ошибка появляется, если удостоверение расширения не имеет правильных разрешений для доступа к учетной записи хранения. Эта ошибка возникает при первом установке расширения резервного копирования AKS при настройке операции защиты. Это происходит на время, затраченное на распространение предоставленных разрешений на расширение резервного копирования AKS. В качестве обходного решения подождите час и повторите настройку защиты. В противном случае используйте портал Azure или CLI для переназначения этого отсутствующих разрешений для учетной записи хранения.
UserErrorSnapshotResourceGroupHasLocks
Причина. Этот код ошибки появляется при применении блокировки удаления или чтения в группе ресурсов моментальных снимков, предоставленной в качестве входных данных для расширения резервного копирования.
Рекомендуемое действие. Если вы настраиваете новый экземпляр резервного копирования, используйте группу ресурсов без блокировки удаления или чтения. Если экземпляр резервного копирования уже настроен, удалите блокировку из группы ресурсов моментального снимка.
Ошибки на основе резервного копирования в хранилище
Эти коды ошибок могут отображаться при включении резервного копирования AKS для хранения резервных копий в стандартном хранилище данных.
DppUserErrorVaultTierPolicyNotSupported
Причина. Этот код ошибки появляется при создании политики резервного копирования с правилом хранения, определенным для хранилища данных уровня "Стандартный" для хранилища резервных копий в регионе, где это хранилище данных не поддерживается.
Рекомендуемое действие. Обновите правило хранения с использованием стандартной длительности хранилища, определенной в портал Azure:
Щелкните значок "Изменить" рядом с правилом.
Снимите флажок рядом со стандартом Vault и нажмите кнопку "Обновить".
Создайте политику резервного копирования для резервного копирования уровня операций (только моментальные снимки для кластера AKS).
Задания резервного копирования и восстановления AKS, завершенные с предупреждениями
UserErrorPVSnapshotDisallowedByPolicy
Код ошибки: UserErrorPVSnapshotDisallowedByPolicy
Причина. Политика Azure назначается по подписке, которая перестает драйвер CSI принимать моментальный снимок тома.
Рекомендуемое действие. Удалите Политика Azure отменяя операцию моментального снимка диска, а затем выполните резервное копирование по запросу.
UserErrorPVSnapshotLimitReached
Код ошибки: UserErrorPVSnapshotLimitReached
Причина. Существует ограниченное количество моментальных снимков для постоянного тома, которое может существовать в определенный момент времени. Для постоянных томов на основе дисков Azure ограничение составляет 500 моментальных снимков. Эта ошибка возникает, когда моментальные снимки для определенных постоянных томов не принимаются из-за наличия моментальных снимков выше поддерживаемых ограничений.
Рекомендуемое действие. Обновите политику резервного копирования, чтобы уменьшить продолжительность хранения и дождаться удаления старых точек восстановления.
CSISnapshottingTimedOut
Код ошибки: CSISnapshottingTimedOut
Причина: сбой моментального снимка, так как драйвер CSI получает время ожидания, чтобы получить дескриптор моментального снимка.
Рекомендуемое действие. Просмотрите журналы и повторите операцию, чтобы получить успешные моментальные снимки, выполнив резервную копию по запросу или дождитесь следующего запланированного резервного копирования.
UserErrorHookExecutionFailed
Код ошибки: UserErrorHookExecutionFailed
Причина. При применении перехватчиков к запуску вместе с резервными копиями и восстановлением произошла ошибка, и они не были успешно применены.
Рекомендуемое действие: просмотрите журналы, обновите перехватчики, а затем повторите операцию резервного копирования и восстановления.
UserErrorNamespaceNotFound
Код ошибки: UserErrorNamespaceNotFound
Причина. Пространства имен, предоставляемые в конфигурации резервного копирования, отсутствуют при выполнении резервных копий. Либо пространство имен было неправильно предоставлено или удалено.
Рекомендуемое действие. Проверьте правильность резервного копирования пространств имен.
UserErrorPVCHasNoVolume
Код ошибки: UserErrorPVCHasNoVolume
Причина. Утверждение постоянного тома (ПВХ) в контексте не имеет постоянного тома, подключенного к нему. Таким образом, ПВХ не будет резервного копирования.
Рекомендуемое действие: присоединение тома к ПВХ, если требуется создать резервную копию.
UserErrorPVCNotBoundToVolume
Код ошибки: UserErrorPVCNotBoundToVolume
Причина: ПВХ в контексте находится в состоянии ожидания и не имеет постоянного тома, подключенного к нему. Таким образом, ПВХ не будет резервного копирования.
Рекомендуемое действие: присоединение тома к ПВХ, если требуется создать резервную копию.
UserErrorPVNotFound
Код ошибки: UserErrorPVNotFound
Причина. Отсутствует базовый носитель хранилища для постоянного тома.
Рекомендуемое действие. Проверьте и подключили новый постоянный том с фактическим подключенным носителем хранилища.
UserErrorStorageClassMissingForPVC
Код ошибки: UserErrorStorageClassMissingForPVC
Причина. Проверка резервного копирования AKS для используемого класса хранилища и пропускает постоянный том от создания моментальных снимков из-за недоступности класса.
Рекомендуемое действие: обновите спецификации ПВХ с используемым классом хранения.
UserErrorSourceandTargetClusterCRDVersionMismatch
Код ошибки: UserErrorSourceandTargetClusterCRDVersionMismatch
Причина. Исходный кластер AKS и целевой кластер AKS во время восстановления имеют разные версии FlowSchema и PriorityLevelConfigurations CR. Некоторые ресурсы Kubernetes не восстанавливаются из-за несоответствия в версиях кластера.
Рекомендуемое действие. Используйте ту же версию кластера для целевого кластера, что и исходный кластер, или вручную примените ЦС.
LinkedAuthorizationFailed
Код ошибки: LinkedAuthorizationFailed
Причина. Чтобы выполнить операцию восстановления, пользователю необходимо иметь разрешение на чтение для резервного копирования кластера AKS.
Рекомендуемое действие: назначьте роль читателя в исходном кластере AKS, а затем перейдите к выполнению операции восстановления.