本頁面詳細說明如何排解常見的軟體佈建問題。
排解控制層啟動程序問題
如要排解啟動控制平面程序的問題,請檢查 KIND 叢集內的下列資源:
檢查
anthos-cluster-operatorPod:kubectl logs deployment/anthos-cluster-operator -c operator -n kube-system檢查
AddOn資源:kubectl get AddOn -A您也可以使用
gpc-addons指令查看資源,瞭解更多資訊。請參閱
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
排解叢集建立作業的問題
如要排解叢集建立程序的問題,請按照下列步驟操作:
檢查叢集的目前階段,並確認物件
Harbor-operator或 Harbor 是否存在,然後執行下列指令,從AddOnSet資源的 KIND 叢集檢查其狀態:kubectl get addonset -n fleet-root root-admin -o yaml執行這項指令後,請在
status.currentStage中找出目前階段。在機構基礎架構叢集中,檢查
harbor-system命名空間中的資源。如果您透過kubectl get harborcluster harbor -n harbor-system指令部署HarborCluster物件,表示安裝作業已進入第二階段 (Harbor 階段)。檢查
HarborCluster物件中的status欄位:kubectl -n harbor-system get harborcluster harbor如果狀態顯示
healthy,請使用docker push指令,透過網路入口網站驗證功能。在回報的網址存取網路入口網站。例如
https://10.200.0.36:10443。在啟動程式中執行
docker push指令。如果狀態為
unhealthy,請執行下列項目,查看狀態條件的詳細資料:kubectl -n harbor-system get harborcluster harbor -o yaml如果狀態顯示
healthy,請前往「檢查 Istio 狀態」一節。如果狀態未顯示healthy,請繼續參閱下一節「評估 Harbor 命名空間資源」。
評估 Harbor 命名空間資源
只有在 harbor-system 資源的狀態不是 healthy 時,才需要執行這些步驟。如要查看 harbor-system 資源的狀態,請參閱「排解叢集建立問題」。
評估
harbor-system命名空間資源:kubectl get all -n harbor-system檢查與 Harbor 運算子相關的資源狀態,包括在機構基礎架構叢集建立程序第二階段中,以子圖表形式建構的 PostgreSQL 和 Redis 運算子。確認下列運算子處於
Running狀態:deployment/harbor-operator-harbor-operator deployment/harbor-operator-postgres-operator deployment/harbor-operator-redisoperator確認 PostgreSQL、Redis 和 Harbor 元件的資源狀態皆為
healthy。如果部分 Pod 不處於healthy狀態,請使用下列指令查看失敗 Pod 的詳細資料:kubectl get pod -o wide kubectl describe pod您也可以使用下列指令,查看管理員的記錄:
kubectl logs -f deploy/harbor-operator-postgres-operator如要檢查 PostgreSQL 資源,請查看
statefulset/postgresql-harbor-system-harbor。如要檢查 Redis 資源,請查看:
- Redis 執行個體:
statefulset/rfr-harbor-redis - Redis 哨兵:
deployment/rfs-harbor-redis
只有在兩個元件都準備就緒時,才會部署 Harbor 核心元件。
如果部分 Harbor 核心元件 Pod 失敗,請檢查失敗 Pod 的記錄。在某些情況下,PostgreSQL 或 Redis 執行個體會發生通訊問題。
舉例來說,如果 Harbor 核心元件無法使用提供的憑證連線至 PostgreSQL 或 Redis,則可能是 Harbor Operator 有問題,因為這個元件負責在部署 Harbor 核心元件前設定憑證。
- Redis 執行個體:
檢查 Istio 狀態
如要確認 Pod 狀態為 istio (例如 istio-system 和 service/istio-ingressgateway),請檢查是否已公開通訊埠 10443。