疑難排解資源
本文會識別已啟用 Azure Arc 的資料服務的疑難排解資源。
上傳
記錄上傳相關錯誤
如果您使用 kubectl
在 direct
連線模式中部署 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."
},
若要解決上述錯誤,請使用包含 WorkspaceID
和 SharedAccessKey
的 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 叢集,或將更多資源新增至現有的節點。