偵錯Red Hat OpenShift Web 控制台、OperatorHub,內部登錄檔和其他元件

虛擬私有雲 經典基礎架構

Red Hat OpenShift 叢集擁有許多內建元件,可共同簡化開發人員的體驗。 例如,您可以使用 Red Hat OpenShift Web 主控台來管理和部署群集工作負載,或從 OperatorHub 啟用第三方操作員,以服務網狀結構和其他功能來強化您的群集。

常用元件包括下列。 如果這些元件失敗,請檢閱下列除錯步驟。

  • openshift-console 專案中的 Red Hat OpenShift Web 主控台
  • openshift-marketplace 專案中的 OperatorHub
  • openshift-image-registry 專案中的 內部登錄

步驟 1: 檢查您的帳戶設定

請檢查 IBM Cloud 帳戶是否已適當設定。 可防止預設元件適當地執行的部分一般實務範例包括下列:

  • 如果標準叢集具有多個區域,或者如果您具有 VPC 叢集,請確保啟用 VRF 或 VLAN Spanning。 若要檢查是否已啟用 VRF,請執行 ibmcloud account show。 若要檢查是否已啟用 VLAN Spanning,請執行 ibmcloud oc vlan spanning get
  • 如果帳戶中的部分使用者使用多因子鑑別 (MFA) (例如 TOTP),請確定您針對 IBM Cloud 帳戶中的所有使用者 啟用 MFA

不支援在使用者層次啟用 MFA。 如果已針對部分使用者啟用 MFA,但未針對帳戶層次的所有使用者啟用 MFA,則可能會發生鑑別錯誤。

步驟 2: 檢查公用閘道

  • 對於已啟用公用及專用雲端服務端點的 VPC 叢集:

    檢查叢集所連接的每一個 VPC 子網路上是否已啟用公用閘道。 預設元件 (例如 Web 主控台和 OperatorHub ) 需要公用閘道才能使用安全的公用連線來完成動作,例如從遠端專用登錄取回映像檔。

    1. 使用 IBM Cloud 主控台或 CLI 來 確保在叢集所連接的每一個子網路上 啟用公用閘道。
    2. 在 Web 主控台中重新啟動 開發人員型錄 的元件。
      1. 編輯 samples 運算子的 ConfigMap。
        oc edit configs.samples.operator.openshift.io/cluster
        

    2. 將 managementState 的值從 Removed 變更為 Managed。 3. 儲存並關閉配置對映。 您的變更會自動套用。

  • 對於同時啟用公用和專用雲端服務端點的標準叢集:

    請檢查叢集是否具有公用連線功能,以便網路元件在部署時可以與主節點交談。

    1. 檢查 Master 狀態。 如果 主要狀態 不是 備妥,請 檢閱其狀態,並遵循任何疑難排解資訊來解決問題。

      ibmcloud oc cluster get -c <cluster_name_or_ID>
      
    2. Master Status 輸出中,檢查您的群集是否有 Public Service Endpoint URL。 如果您的群集沒有公共雲端服務端點,請啟用它。

    3. 檢查叢集裡至少部分工作者節點具有 公用 IP 位址。 如果沒有工作人員節點會這樣做,您必須為至少一個工作人員池設定公用 VLAN。

      ibmcloud oc workers -c <cluster_name_or_ID>
      

步驟 3: 檢查防火牆及網路原則

檢查任何防火牆或網路原則,以驗證您未封鎖 OperatorHub 或其他 Red Hat OpenShift 元件的任何進入或輸出資料流量。

步驟 4: 檢查叢集設定

請檢查是否已適當地設定叢集。 如果您剛建立叢集,請等待叢集元件完全佈建。

  1. 取得群集的詳細資訊。
    ibmcloud oc cluster get -c <cluster_name_or_ID>
    
  2. 檢閱前一個步驟的輸出,以檢查 Ingress 子網域
  3. 驗證叢集是否執行最新修補程式 ****版。 如果叢集未執行最新修補程式版本,請更新叢集和工作者節點。
    1. 更新叢集主節點 至叢集主要及次要版本的最新修補程式版本。
      ibmcloud oc cluster master update -c <cluster_name_or_ID> --version <major.minor>_openshift-f
      
    2. 列出工作者節點。
      ibmcloud oc worker ls -c <cluster_name_or_ID>
      
    3. 更新工作者節點 以符合叢集主節點版本。
      ibmcloud oc worker update -c <cluster_name_or_ID> -w <worker1_ID> -w <worker2_ID> -w <worker3_ID>
      
  4. 檢查群集狀態。 如果狀態不正常,請檢視群集狀態並解決任何問題。
  5. 檢查 主要性能。 如果狀態不正常,請檢視主健康狀態並解決任何問題。
  6. 請檢查 Red Hat OpenShift 元件可能執行的工作者節點。 如果狀態不是 normal,請參閱 對工作者節點進行除錯
    ibmcloud oc worker ls -c <cluster_name_or_ID>
    

步驟 5:登入您的群集

登入叢集。 請注意,如果 Red Hat OpenShift Web 主控台無法讓您取得登入記號,您可以 從 CLI 存取叢集

僅限 VPC: 如果您已啟用專用雲端服務端點,則必須 透過 VPC VPN 連線連接至專用網路 才能存取 Web 主控台。

步驟 6: 檢查元件 Pod

檢查無法運作的 Red Hat OpenShift 元件 Pod 的性能。

  1. 檢查 pod 的狀態。
    oc get pods -n <project>
    
  2. 如果 Pod 未處於 執行中 狀態,請說明 Pod 並檢查事件。 例如,您可能會看到由於缺少 CPU 或記憶體資源而無法排程 Pod 的錯誤,如果叢集少於 3 個工作者節點,這是常見的錯誤。 調整標準工作者節點儲存區大小調整 VPC 工作者節點儲存區大小,然後再試一次。
    oc describe pod -n <project> <pod>
    
  3. 如果您在事件區段中未看到任何有用資訊,請檢查 Pod 日誌,以取得任何錯誤訊息或其他疑難排解資訊。
    oc logs pod -n <project> <pod>
    
  4. 重新啟動 Pod,並檢查它是否達到 執行中 狀態。
    oc delete pod -n <project> <pod>
    

步驟 7: 檢查系統 Pod

如果 Pod 性能良好,請檢查其他系統 Pod 是否遇到問題。 通常情況下,一個元件會依賴另一個元件來正常運作。

例如,OperatorHub 具有一組儲存在外部登錄中的映像檔,例如 quay.io。 這些映像檔會取回至內部登錄,以在 Red Hat OpenShift 叢集中的專案之間使用。 如果未適當地設定任何 OperatorHub 或內部登錄元件 (例如,由於缺少許可權或計算資源),則 OperatorHub 和型錄不會顯示。

  1. 檢查是否有擱置中的 Pod。
    oc get pods --all-namespaces | grep Pending
    
  2. 說明 Pod 並檢查 事件
    oc describe pod -n <project_name> <pod_name>
    
    例如,您可能從 openshift-image-registry Pod 看到的一些一般訊息包括:
    • Volume could not be created 錯誤訊息,因為您已建立叢集,但沒有正確的儲存體許可權。依預設,Red Hat OpenShift on IBM Cloud 叢集會隨附檔案儲存裝置,以儲存系統及其他 Pod 的映像檔。 修訂 基礎架構許可權,然後重新啟動 Pod。
    • order will exceed maximum number of storage volumes allowed 錯誤訊息,因為您已超出每個帳戶容許的檔案及區塊儲存裝置組合配額。 移除未用的儲存裝置增加儲存空間配額,然後重新啟動 Pod。
    • 因為檔案儲存裝置已滿而無法儲存映像檔的訊息。 調整儲存裝置大小,然後重新啟動 Pod。
    • Pull image still failed due to error: unauthorized: authentication required 錯誤訊息,因為內部登錄無法從外部登錄取回映像檔。 檢查是否已設定專案的 映像檔取回密碼,然後重新啟動 Pod。
  3. 檢查執行失敗 Pod 的 Node。 如果所有 Pod 都在相同的工作者節點上執行,則工作者節點可能有網路連線功能問題。 重新載入工作者節點。
    ibmcloud oc worker reload -c <cluster_name_or_ID> -w <worker_node_ID>
    

步驟 8: 檢查 VPN

檢查叢集裡的 VPN 是否已適當地設定。

  1. 檢查 VPN pod 是否正在執行
    oc get pods -n kube-system -l app=vpn
    
  2. 檢查 VPN 日誌,並檢查指出 VPN 通道無法運作的 ERROR 訊息,例如 WORKERIP:<port>,例如 WORKERIP:10250
    oc logs -n kube-system <vpn_pod> --tail 10
    
  3. 如果您看到工作者 IP 錯誤,請檢查工作者節點對工作者節點的通訊是否已中斷。 登入 calico-system 專案中的 calico-node Pod,並檢查是否有相同的 WORKERIP:10250 錯誤。
    oc exec -n calico-system <calico-node_pod> -- date
    
  4. 如果工作者節點對工作者節點的通訊中斷,請確保啟用 VRF 或 VLAN Spanning
  5. 如果您看到與 VPN 或 calico-node Pod 不同的錯誤,請重新啟動 VPN Pod。
    oc delete pod -n kube-system <vpn_pod>
    
  6. 如果 VPN 仍然失敗,請檢查 Pod 執行所在的工作者節點。
    oc describe pod -n kube-system <vpn_pod> | grep "Node:"
    
  7. 封鎖工作者節點,以便將 VPN Pod 重新排程至不同的工作者節點。
    oc cordon <worker_node>
    
  8. 再次檢查 VPN Pod 日誌。 如果 Pod 不再有錯誤,則工作者節點可能有網路連線功能問題。 重新載入工作者節點。
    ibmcloud oc worker reload -c <cluster_name_or_ID> -w <worker_node_ID>
    

步驟 9: 重新整理叢集主節點

重新整理叢集主節點以設定預設 Red Hat OpenShift 元件。 重新整理叢集之後,請等待幾分鐘,讓作業完成。

ibmcloud oc cluster master refresh -c <cluster_name_or_ID>

步驟 10: 重試

再次嘗試使用 Red Hat OpenShift 元件。

如果錯誤仍然存在,請參閱 意見、問題及支援