共用方式為


疑難排解資源

本文會識別已啟用 Azure Arc 的資料服務的疑難排解資源。

上傳

如果您使用 kubectldirect 連線模式中部署 Azure Arc 資料控制器,且尚未建立 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."
                    },

若要解決上述錯誤,請使用包含 WorkspaceIDSharedAccessKey 的 Log Analytics 工作區認證來建立祕密,如下所示:

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."}}

若要解決上述錯誤,請擷取 Azure Arc 資料控制器延伸模組的 MSI,並授與必要角色,如上傳計量中所述。

如果您在直接連線模式中部署 Azure Arc 資料控制器,則會自動為 Azure Arc 資料控制器延伸模組 MSI 授與上傳使用量資訊所需的權限。 如果自動上傳程序遇到權限相關問題,您可能會在記錄中看到錯誤,如下所示:

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 

若要解決,請參考正確映像標籤的版本記錄。 使用正確的映像標籤重新執行升級命令。

無法連線至登錄或存放庫

如果您嘗試升級,而且升級作業未產生錯誤,但執行的時間超過 15 分鐘,您可以監看 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>

尋找 Containers.controller.Image,您將在其中看到登錄和存放庫。 擷取這些值、輸入您的 yaml 檔案,然後重新執行升級。

沒有足夠的資源

如果您嘗試升級,而且升級作業未產生錯誤,但執行的時間超過 15 分鐘,您可以監看 Pod 來檢視升級的進度。 執行

kubectl get pods -n <namespace>

尋找顯示部分容器已就緒 (但實際上不是) 的 Pod,例如,此 metricsdb-0 Pod 只有兩個容器的其中一個:

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>

如果您看到有關 CPU 或記憶體不足的訊息,窕應該將更多節點新增至 Kubernetes 叢集,或將更多資源新增至現有的節點。

資源 (依類型)

案例:針對 PostgreSQL 伺服器進行疑難排解

使用 Kibana 和 Grafana 來檢視記錄和計量

案例:在 Azure 入口網站中檢視執行個體的詳細目錄