Ресурсы по устранению неполадок

В этой статье указаны ресурсы по устранению неполадок для служб данных с поддержкой Azure Arc.

Загрузки

Если вы развернули контроллер данных Azure Arc в direct режиме подключения с помощью kubectlи не создали секрет для учетных данных рабочей области Log Analytics, в cr контроллера данных (пользовательский ресурс) могут появить следующие сообщения об ошибках:

status": {
    "azure": {
        "uploadStatus": {
            "logs": {
                "lastUploadTime": "YYYY-MM-HHTMM:SS:MS.SSSSSSZ",
                    "message": "spec.settings.azure.autoUploadLogs is true, but failed to get log-workspace-secret secret."
                    },

Чтобы устранить указанную выше ошибку, создайте секрет с учетными данными рабочей области Log Analytics, содержащими WorkspaceID указанные SharedAccessKey ниже сведения.

apiVersion: v1
data:
  primaryKey: <base64 encoding of Azure Log Analytics workspace primary key>
  workspaceId: <base64 encoding of Azure Log Analytics workspace Id>
kind: Secret
metadata:
  name: log-workspace-secret
  namespace: <your datacontroller namespace>
type: Opaque

Если вы настроили автоматическую отправку метрик, в режиме прямого подключения и разрешениях, необходимых для MSI, не были предоставлены должным образом (как описано в метриках отправки), в журналах может появиться ошибка следующим образом:

'Metric upload response: {"error":{"code":"AuthorizationFailed","message":"Check Access Denied Authorization for AD object XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX over scope /subscriptions/XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX/resourcegroups/my-resource-group/providers/microsoft.azurearcdata/sqlmanagedinstances/arc-dc, User Tenant Id: XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX. Microsoft.Insights/Metrics/write was not allowed, Microsoft.Insights/Telemetry/write was notallowed. Warning: Principal will be blocklisted if the service principal is not granted proper access while it hits the GIG endpoint continuously."}}

Чтобы устранить указанную выше ошибку, получите MSI для расширения контроллера данных Azure Arc и предоставьте необходимые роли, как описано в разделе "Отправка метрик".

Если вы развернули контроллер данных Azure Arc в режиме прямого подключения, разрешения, необходимые для отправки сведений об использовании, автоматически предоставляются для msi расширения контроллера данных Azure Arc. Если процесс автоматической отправки выполняется в связанных с разрешениями проблемах, может появиться ошибка в журналах следующим образом:

identified that your data controller stopped uploading usage data to Azure. The error was:

{"lastUploadTime":"2022-05-05T20:10:47.6746860Z","message":"Data controller upload response: {\"error\":{\"code\":\"AuthorizationFailed\",\"message\":\"The client 'XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX' with object id 'XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX' does not have authorization to perform action 'microsoft.azurearcdata/datacontrollers/write' over scope '/subscriptions/XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX/resourcegroups/my-resource-group/providers/microsoft.azurearcdata/datacontrollers/arc-dc' or the scope is invalid. If access was recently granted, please refresh your credentials.\"}}"}

Чтобы устранить проблему с разрешениями, получите MSI и предоставьте необходимые роли, как описано в разделе "Отправка метрик").

Обновления

Неправильный тег изображения

Если вы используете az CLI для обновления, и вы передаете неправильный тег изображения, вы увидите ошибку в течение двух минут.

Job Still Active : Failed to await bootstrap job complete after retrying for 2 minute(s).
Failed to await bootstrap job complete after retrying for 2 minute(s).

При просмотре модулей pod вы увидите состояние задания начальной загрузки как ErrImagePull.

STATUS
ErrImagePull

При описании модуля pod вы увидите

Failed to pull image "<registry>/<repository>/arc-bootstrapper:<incorrect image tag>": [rpc error: code = NotFound desc = failed to pull and unpack image 

Чтобы устранить проблему, найдите журнал версий для правильного тега изображения. Повторно выполните команду обновления с правильным тегом изображения.

Не удается подключиться к реестру или репозиторию

Если вы пытаетесь обновить и задание обновления не привело к ошибке, но выполняется дольше пятнадцати минут, вы можете просмотреть ход обновления, просмотрев модули pod. Выполнить

kubectl get pods -n <namespace>

При просмотре модулей pod вы увидите состояние задания начальной загрузки как ErrImagePull.

STATUS
ErrImagePull

Опишите модуль pod задания начальной загрузки для просмотра событий.

kubectl describe pod <pod name> -n <namespace>

При описании модуля pod вы увидите ошибку, которая говорит

failed to resolve reference "<registry>/<repository>/arc-bootstrapper:<image tag>"

Это обычно происходит, если образ был развернут из частного реестра, вы используете Kubernetes для обновления с помощью yaml-файла, а файл yaml ссылается на mcr.microsoft.com вместо частного реестра. Чтобы устранить проблему, отмените задание обновления. Чтобы найти развернутый реестр, выполните команду

kubectl describe pod <controller in format control-XXXXX> -n <namespace>

Найдите контейнеры.controller.Image, где вы увидите реестр и репозиторий. Захватить эти значения, ввести в файл yaml и повторно запустить обновление.

Недостаточно ресурсов

Если вы пытаетесь обновить и задание обновления не привело к ошибке, но выполняется дольше пятнадцати минут, вы можете просмотреть ход обновления, просмотрев модули pod. Выполнить

kubectl get pods -n <namespace>

Найдите модуль pod, показывающий, что некоторые контейнеры готовы, но не — например, этот модуль metricsdb-0 содержит только один из двух контейнеров:

NAME                                    READY   STATUS             RESTARTS        AGE
bootstrapper-848f8f44b5-7qxbx           1/1     Running            0               16m
control-7qxw8                           2/2     Running            0               16m
controldb-0                             2/2     Running            0               16m
logsdb-0                                3/3     Running            0               18d
logsui-hvsrm                            3/3     Running            0               18d
metricsdb-0                             1/2     Running            0               18d

Опишите модуль pod для просмотра событий.

kubectl describe pod <pod name> -n <namespace>

Если события отсутствуют, получите имена контейнеров и просмотрите журналы для контейнеров.

kubectl get pods <pod name> -n <namespace> -o jsonpath='{.spec.containers[*].name}*'

kubectl logs <pod name> <container name> -n <namespace>

Если появится сообщение о нехватке ЦП или памяти, следует добавить дополнительные узлы в кластер Kubernetes или добавить дополнительные ресурсы в существующие узлы.

Ресурсы по типу

Сценарий. Устранение неполадок серверов PostgreSQL

Просмотр журналов и метрик с помощью Kibana и Grafana

Сценарий: просмотр инвентаризации ваших экземпляров на портале Azure