軟體佈建疑難排解

本頁面詳細說明如何排解常見的軟體佈建問題。

排解控制層啟動程序問題

如要排解啟動控制平面程序的問題,請檢查 KIND 叢集內的下列資源:

  1. 檢查 anthos-cluster-operator Pod:

    kubectl logs deployment/anthos-cluster-operator -c operator -n kube-system
    
  2. 檢查 AddOn 資源:

    kubectl get AddOn -A
    

    您也可以使用 gpc-addons 指令查看資源,瞭解更多資訊。

  3. 請參閱AddOnSet資源:

    kubectl get AddOnSet -A
    

    如果控制層啟動程序在建立機構基礎架構叢集後未完成處理 (例如在資源樞紐期間),請手動匯出 kubeconfig 檔案:

    kubectl get secret root-admin-kubeconfig -n root -o jsonpath="{.data.value}" | base64 -d > /root/path/to/root-admin-kubeconfig.yaml
    

排解叢集建立作業的問題

如要排解叢集建立程序的問題,請按照下列步驟操作:

  1. 檢查叢集的目前階段,並確認物件 Harbor-operator 或 Harbor 是否存在,然後執行下列指令,從 AddOnSet 資源的 KIND 叢集檢查其狀態:

    kubectl get addonset -n fleet-root root-admin -o yaml
    

    執行這項指令後,請在 status.currentStage 中找出目前階段。

  2. 在機構基礎架構叢集中,檢查 harbor-system 命名空間中的資源。如果您透過 kubectl get harborcluster harbor -n harbor-system 指令部署 HarborCluster 物件,表示安裝作業已進入第二階段 (Harbor 階段)。

  3. 檢查 HarborCluster 物件中的 status 欄位:

    kubectl -n harbor-system get harborcluster harbor
    

    如果狀態顯示 healthy,請使用 docker push 指令,透過網路入口網站驗證功能。

  4. 在回報的網址存取網路入口網站。例如 https://10.200.0.36:10443

  5. 在啟動程式中執行 docker push 指令。

    如果狀態為 unhealthy,請執行下列項目,查看狀態條件的詳細資料:

    kubectl -n harbor-system get harborcluster harbor -o yaml
    

    如果狀態顯示 healthy,請前往「檢查 Istio 狀態」一節。如果狀態未顯示 healthy,請繼續參閱下一節「評估 Harbor 命名空間資源」。

評估 Harbor 命名空間資源

只有在 harbor-system 資源的狀態不是 healthy 時,才需要執行這些步驟。如要查看 harbor-system 資源的狀態,請參閱「排解叢集建立問題」。

  1. 評估 harbor-system 命名空間資源:

    kubectl get all -n harbor-system
    
  2. 檢查與 Harbor 運算子相關的資源狀態,包括在機構基礎架構叢集建立程序第二階段中,以子圖表形式建構的 PostgreSQL 和 Redis 運算子。確認下列運算子處於 Running 狀態:

    deployment/harbor-operator-harbor-operator
    deployment/harbor-operator-postgres-operator
    deployment/harbor-operator-redisoperator
    
  3. 確認 PostgreSQL、Redis 和 Harbor 元件的資源狀態皆為 healthy。如果部分 Pod 不處於 healthy 狀態,請使用下列指令查看失敗 Pod 的詳細資料:

    kubectl get pod -o wide
    kubectl describe pod
    

    您也可以使用下列指令,查看管理員的記錄:

    kubectl logs -f deploy/harbor-operator-postgres-operator
    
  4. 如要檢查 PostgreSQL 資源,請查看 statefulset/postgresql-harbor-system-harbor

  5. 如要檢查 Redis 資源,請查看:

    1. Redis 執行個體:statefulset/rfr-harbor-redis
    2. Redis 哨兵:deployment/rfs-harbor-redis

    只有在兩個元件都準備就緒時,才會部署 Harbor 核心元件。

    如果部分 Harbor 核心元件 Pod 失敗,請檢查失敗 Pod 的記錄。在某些情況下,PostgreSQL 或 Redis 執行個體會發生通訊問題。

    舉例來說,如果 Harbor 核心元件無法使用提供的憑證連線至 PostgreSQL 或 Redis,則可能是 Harbor Operator 有問題,因為這個元件負責在部署 Harbor 核心元件前設定憑證。

檢查 Istio 狀態

如要確認 Pod 狀態為 istio (例如 istio-systemservice/istio-ingressgateway),請檢查是否已公開通訊埠 10443。