偵錯Red Hat OpenShift Web 控制台、OperatorHub,內部登錄檔和其他元件
虛擬私有雲 經典基礎架構
Red Hat OpenShift 叢集擁有許多內建元件,可共同簡化開發人員的體驗。 例如,您可以使用 Red Hat OpenShift Web 主控台來管理和部署群集工作負載,或從 OperatorHub 啟用第三方操作員,以服務網狀結構和其他功能來強化您的群集。
常用元件包括下列。 如果這些元件失敗,請檢閱下列除錯步驟。
openshift-console專案中的 Red Hat OpenShift Web 主控台openshift-marketplace專案中的 OperatorHubopenshift-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 ) 需要公用閘道才能使用安全的公用連線來完成動作,例如從遠端專用登錄取回映像檔。
- 使用 IBM Cloud 主控台或 CLI 來 確保在叢集所連接的每一個子網路上 啟用公用閘道。
- 在 Web 主控台中重新啟動 開發人員型錄 的元件。
- 編輯 samples 運算子的 ConfigMap。
oc edit configs.samples.operator.openshift.io/cluster
- 編輯 samples 運算子的 ConfigMap。
2. 將
managementState的值從Removed變更為Managed。 3. 儲存並關閉配置對映。 您的變更會自動套用。 -
對於同時啟用公用和專用雲端服務端點的標準叢集:
請檢查叢集是否具有公用連線功能,以便網路元件在部署時可以與主節點交談。
-
檢查 Master 狀態。 如果 主要狀態 不是 備妥,請 檢閱其狀態,並遵循任何疑難排解資訊來解決問題。
ibmcloud oc cluster get -c <cluster_name_or_ID> -
在 Master Status 輸出中,檢查您的群集是否有 Public Service Endpoint URL。 如果您的群集沒有公共雲端服務端點,請啟用它。
-
檢查叢集裡至少部分工作者節點具有 公用 IP 位址。 如果沒有工作人員節點會這樣做,您必須為至少一個工作人員池設定公用 VLAN。
ibmcloud oc workers -c <cluster_name_or_ID>
-
步驟 3: 檢查防火牆及網路原則
檢查任何防火牆或網路原則,以驗證您未封鎖 OperatorHub 或其他 Red Hat OpenShift 元件的任何進入或輸出資料流量。
- 如果您已透過指定具有叢集存取權的 IP 位址來產生 IBM Cloud Identity and Access Management (IAM) 允許清單,則必須針對叢集所在地區中的區域,新增 Red Hat OpenShift on IBM Cloud 控制平面的 CIDR。
- 僅限標準: 如果您有防火牆,請 在防火牆中開啟必要的埠和 IP 位址。
- 僅限 VPC: 如果您使用 VPC ACL 或安全群組來控制資料流量,請確保容許所需的最低 入埠及出埠規則。
步驟 4: 檢查叢集設定
請檢查是否已適當地設定叢集。 如果您剛建立叢集,請等待叢集元件完全佈建。
- 取得群集的詳細資訊。
ibmcloud oc cluster get -c <cluster_name_or_ID> - 檢閱前一個步驟的輸出,以檢查 Ingress 子網域。
- 如果叢集 沒有 子網域,請參閱 建立叢集之後沒有 Ingress 子網域存在。
- 如果您的叢集有子網域,請繼續進行下一步。
- 驗證叢集是否執行最新修補程式 ****版。 如果叢集未執行最新修補程式版本,請更新叢集和工作者節點。
- 檢查群集狀態。 如果狀態不正常,請檢視群集狀態並解決任何問題。
- 檢查 主要性能。 如果狀態不正常,請檢視主健康狀態並解決任何問題。
- 請檢查 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 的性能。
- 檢查 pod 的狀態。
oc get pods -n <project> - 如果 Pod 未處於 執行中 狀態,請說明 Pod 並檢查事件。 例如,您可能會看到由於缺少 CPU 或記憶體資源而無法排程 Pod 的錯誤,如果叢集少於 3 個工作者節點,這是常見的錯誤。 調整標準工作者節點儲存區大小 或 調整 VPC 工作者節點儲存區大小,然後再試一次。
oc describe pod -n <project> <pod> - 如果您在事件區段中未看到任何有用資訊,請檢查 Pod 日誌,以取得任何錯誤訊息或其他疑難排解資訊。
oc logs pod -n <project> <pod> - 重新啟動 Pod,並檢查它是否達到 執行中 狀態。
oc delete pod -n <project> <pod>
步驟 7: 檢查系統 Pod
如果 Pod 性能良好,請檢查其他系統 Pod 是否遇到問題。 通常情況下,一個元件會依賴另一個元件來正常運作。
例如,OperatorHub 具有一組儲存在外部登錄中的映像檔,例如 quay.io。 這些映像檔會取回至內部登錄,以在 Red Hat OpenShift 叢集中的專案之間使用。 如果未適當地設定任何 OperatorHub 或內部登錄元件 (例如,由於缺少許可權或計算資源),則 OperatorHub 和型錄不會顯示。
- 檢查是否有擱置中的 Pod。
oc get pods --all-namespaces | grep Pending - 說明 Pod 並檢查 事件。
例如,您可能從oc describe pod -n <project_name> <pod_name>openshift-image-registryPod 看到的一些一般訊息包括: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。
- 檢查執行失敗 Pod 的 Node。 如果所有 Pod 都在相同的工作者節點上執行,則工作者節點可能有網路連線功能問題。 重新載入工作者節點。
ibmcloud oc worker reload -c <cluster_name_or_ID> -w <worker_node_ID>
步驟 8: 檢查 VPN
檢查叢集裡的 VPN 是否已適當地設定。
- 檢查 VPN pod 是否正在執行。
oc get pods -n kube-system -l app=vpn - 檢查 VPN 日誌,並檢查指出 VPN 通道無法運作的
ERROR訊息,例如WORKERIP:<port>,例如WORKERIP:10250。oc logs -n kube-system <vpn_pod> --tail 10 - 如果您看到工作者 IP 錯誤,請檢查工作者節點對工作者節點的通訊是否已中斷。 登入
calico-system專案中的calico-nodePod,並檢查是否有相同的WORKERIP:10250錯誤。oc exec -n calico-system <calico-node_pod> -- date - 如果工作者節點對工作者節點的通訊中斷,請確保啟用 VRF 或 VLAN Spanning。
- 如果您看到與 VPN 或
calico-nodePod 不同的錯誤,請重新啟動 VPN Pod。oc delete pod -n kube-system <vpn_pod> - 如果 VPN 仍然失敗,請檢查 Pod 執行所在的工作者節點。
oc describe pod -n kube-system <vpn_pod> | grep "Node:" - 封鎖工作者節點,以便將 VPN Pod 重新排程至不同的工作者節點。
oc cordon <worker_node> - 再次檢查 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 元件。
如果錯誤仍然存在,請參閱 意見、問題及支援。