分享方式:


針對 Kubernetes 支援的自我裝載整合執行階段進行疑難排解

本文涵蓋針對 Linux 的 Kubernetes 型新自我裝載整合執行階段進行疑難排解的詳細數據。

您可以在下面的錯誤指南中查找您看到的任何錯誤。 若要取得 SHIR 問題的支援和疑難排解指引,您可能需要產生記錄上傳識別碼,並 連絡 Microsoft 支援服務。

收集 Kubernetes 自我裝載整合執行階段記錄

若要產生 Microsoft 支援服務 的記錄上傳識別碼:

  1. 掃描顯示狀態失敗後,請流覽至安裝 IRCTL 工具的 VM 或電腦。
  2. 使用命令 ./irctl log upload
  3. 上傳記錄時,請保留列印的記錄上傳識別碼的記錄。
  4. 如果自我裝載整合執行階段無法註冊,請使用下列指南將記錄下載至本機,並將其傳送至 Microsoft 支援服務

若要收集自我裝載整合執行階段記錄並掃描執行記錄以針對 SHIR 進行疑難排解,請使用命令 ./irctl log download

例如:

./irctl log download --destination "C:\Users\user\logs\"

日誌會下載到目的地路徑。

注意事項

記錄保留 14 天。 將它上傳到 Microsoft 或下載到本機電腦來保存它。

與 Kubernetes 的 IRCTL 連線錯誤

您可能會從 Kubernetes 管理員取得 Kubernetes 內容組態,但註冊可能會失敗,並顯示下列其中一個錯誤訊息:

  • Error: invalid flag context [] .kube/config: no such file or directory
  • [Warning] Failed to create kube client with context [] with error

原因

安裝自我裝載整合執行階段時,需要正確的 Kubernetes 設定和穩定的連線能力。

解決方案

  1. 請確定 Kubernetes 內容檔案位於正確的路徑中。
  2. 確保IRCTL機器可以到達Kubernetes叢集API伺服器。

IRCTL 權限錯誤

連線時,您可能會看到以下錯誤訊息:

  • [Error] Failed to list namespaces to get Running SHIR
  • [Error] Failed to get configmap/ create job/ etc.

原因

安裝自我裝載整合執行階段時,需要多個 Kubernetes 資源的足夠許可權。

解決方案

使用管理員角色重新產生 Kubernetes 服務帳戶權杖。

Microsoft Purview 服務端點的 IRCTL 連線錯誤

當您嘗試註冊 Kubernetes 支援的自我裝載整合執行階段時,IRCTL create 命令可能會傳回下列錯誤:

  • [Error] Failed to register SHIR with error: Post “https://[REGION].compute.governance.azure.com/purviewAccounts/[]/integrationruntimes/[]/registerselfhostedintegrationruntime: []”

原因

IRCTL 無法連線到服務後端。 此類問題通常是由網路設定或防火牆引起的。

解決方案

檢閱 IRCTL 主機的網路拓撲。 請參閱 一般整合執行階段疑難排解頁面的這些區段:防火牆、DNSServer、SSL 憑證信任和 http Proxy。

註冊金鑰未獲授權

當您嘗試註冊 Kubernetes 支援的自我裝載整合執行階段時,IRCTL create 命令可能會傳回下列錯誤:

  • [Error] failed to register SHIR with error: Request is not authorized.

原因

它們已過期或被手動撤銷。

解決方案

從 Microsoft Purview 入口網站中的整合執行階段頁面重新產生金鑰,然後重新註冊。

Kubernetes 自託管 IR 建立逾時錯誤

當您嘗試註冊 Kubernetes 支援的自我裝載整合執行階段時,IRCTL 建立命令可能會執行很長時間,直到最終逾時為止。

建立逾時後命令列的螢幕擷取畫面。

您可以從檢查命令提到 irctl describe 的命名空間下的 Pod 狀態開始。

例如:

./irctl describe 

K8s SHIR Name:shir-demo 
Purview AccountName:   shirdemopurview 
Installation ID:       00000000-0000-0000-0000-000000000000 
Kubernetes Namespace:  shirdemopurview-shir-demo, compute-fleet-system(control-plane) 
K8s SHIR Version:      Unknown (Installation not completed) 
Status:                Initializing 
Healthiness:           Unhealthy

kubectl get pods --namespace shirdemopurview-shir-demo

NAME                                       READY   STATUS    RESTARTS   AGE 
batch-defaultspec-4pbwx                    0/1     Pending   0          10m 
batch-defaultspec-7t9bl                    0/1     Pending   0          10m 
dynamic-config-provider-778c686fdc-9mkjb   0/1     Pending   0          10m 
interactive-schemaprocess-bcrmf            0/1     Pending   0          10m 
interactive-schemaprocess-fn66x            0/1     Pending   0          10m 
logagent-ds-84jqn                          0/1     Pending   0          10m 
logagent-ds-k7vw8                          0/1     Pending   0          10m 
user-credential-proxy-579c899b64-d4q5v     0/1     Pending   0          10m 

有幾個潛在原因:

原因 - 與 Microsoft Purview 服務端點的連線

Kubernetes 無法連線到 MCR (mcr.microsoft.com) 。 此錯誤通常是由網路設定或防火牆引起的。

如果看到狀態為「ImagePullBackOff」,則表示您的 Kubernetes 無法連線到 MCR (mcr.microsoft.com) 來下載 Pod 映像。 此錯誤通常是由網路設定或防火牆引起的。

顯示 ImagePullBackOff 狀態的命令列螢幕擷取畫面。

解決方案 - 與 Microsoft Purview 服務端點的連線

檢閱 Kubernetes 叢集的網路拓撲。 例如,針對 Azure Kubernetes,您應該檢查:

注意事項

每個 Kubernetes 提供者所需的疑難排解步驟都不同。 部署位置和個別網路詳細資料因網路而異。 您必須檢閱透過組織網路的連線能力。

檢閱 IRCTL 主機的網路拓撲。 請參閱 一般整合執行階段疑難排解頁面的這些區段:防火牆、DNSServer、SSL 憑證信任和 http Proxy。

原因 - Kubernetes 節點組態錯誤

如果某些 Pod 的狀態停留在「擱置中」,請使用 describe pod 命令來查看 Pod 的詳細資訊。

例如:

kubectl describe pod batch-defaultspec-4pbwx  --namespace shirdemopurview-shir-demo

Events: 
  Type     Reason            Age                From               Message 

  ----     ------            ----               ----               ------- 

  Warning  FailedScheduling  13m                default-scheduler  0/5 nodes are available: 1 Too many pods. preemption: 0/5 nodes are available: 5 No preemption victims found for incoming pod.. 

describe 命令中的事件可以說明 Pod 處於擱置狀態的原因。 帶有詳細消息的 FailedScheduling 錯誤顯示 Pod 總數超過節點上 Pod 的最大數量。 無法將新 Pod 排程到選取的節點。

注意事項

如果描述下沒有看到事件,請嘗試透過命令手動 kubectl delete pod 刪除 Pod 並追蹤新建立的 Pod。

解決方案 - Kubernetes 節點組態錯誤

保留 20 個 Pod 號碼,以支援 Kubernetes 整合執行階段,以支援正常使用率和升級案例。

Microsoft Purview 服務端點的 Kubernetes 連線錯誤

當您嘗試註冊 Kubernetes 支援的自我裝載整合執行階段時,IRCTRL create 命令可能會執行很長時間,直到最終逾時為止。或者,成功安裝之後,自我裝載整合執行階段狀態會在 Microsoft Purview 入口網站中顯示為狀況不良或離線。

使用以下命令檢查日誌: kubectl logs [podName] -n compute-fleet-system

您可能會看到下列其中一個錯誤:

  • “TraceMessage”:”HttpRequestFailed”, “Host”: “fleet.[REGION].compute.governance.azure.com”
  • Exception":"System.Net.Http.HttpRequestException: Connection refused fleet.[REGION].compute.governance.azure.com:443
  • System.AggregateException: Failed to acquire identity token from https://fleet. [REGION].compute.governance.azure.com:443

原因

Kubernetes 無法連線到服務後端。 此錯誤通常是由網路設定或防火牆引起的。

解決方案

檢閱 Kubernetes 叢集的網路拓撲。 例如,針對 Azure Kubernetes,您應該檢查:

注意事項

每個 Kubernetes 提供者所需的疑難排解步驟都不同。 部署位置和個別網路詳細資料因網路而異。 您必須檢閱透過組織網路的連線能力。

檢閱 IRCTL 主機的網路拓撲。 請參閱 一般整合執行階段疑難排解頁面的這些區段:防火牆、DNSServer、SSL 憑證信任和 http Proxy。

取消註冊本機資源無法使用的執行階段

如果您的本機自我裝載整合執行階段意外從 Kubernetes 叢集中刪除,您就無法使用命令刪除irctl delete它,也無法將它安裝到另一個 Kubernetes 叢集。

原因

自我裝載整合執行階段只能安裝在一個 Kubernetes 叢集上。 註冊之後,在取消註冊之前,就無法安裝在另一個叢集上。

解決方案

  1. 檢查自我裝載整合本機狀態。 您應該會看到找不到執行中的自我裝載整合執行階段。

    $./irctl describe
    
  2. 檢查 Microsoft Purview 入口網站中的自我裝載整合執行階段。 您應該會看到 離線 狀態 。 (不過,令牌到期有 1 小時的延遲 ) 。

  3. 選取狀態旁的取消 註冊安裝 ,然後確認作業。

  4. 取消註冊完成後,您可以看到狀態顯示為 未註冊

  5. 選取整合執行階段並取得註冊金鑰。

  6. 重新安裝整合執行階段

後續步驟