輸入錯誤:ERRIODEG
虛擬私有雲 經典基礎架構 Satellite
瞭解當 Ingress Operator 處於降級狀態時,如何解決 ERRIODEG 錯誤。
您可以使用 ibmcloud oc ingress status-report ignored-errors add 指令,將錯誤新增至 ignored-errors 清單。 忽略的錯誤仍會出現在 ibmcloud oc ingress status-report get 指令的輸出中,但在計算整體「Ingress 狀態」時會被忽略。
當您執行 ibmcloud oc ingress status-report get 指令來檢查叢集的 Ingress 元件狀態時,會看到類似下列的錯誤。
The Ingress Operator is in a degraded state (ERRIODEG).
Ingress 操作器會檢查 Ingress 控制器的性能,並在檢查失敗時進入欠佳狀態。
請確認您的節點未處於過載狀態。 節點過載可能會導致 Ingress Operator 的健康檢查失敗。
若要檢查您的 CPU 和記憶體是否具備足夠的餘裕,請執行以下指令。
kubectl top nodes
請查閱「ingress」的詳細資訊 ClusterOperator,並根據錯誤訊息完成相關步驟。
檢查 ingress ClusterOperator的狀態。 如果您在 DEGRADED 直欄中看到 False,請等待 10 到 15 分鐘,以查看「進入狀態」警告是否消失。 如果沒有,請根據 MESSAGE 直欄中的訊息來繼續進行疑難排解步驟。
oc get clusteroperator ingress
一或多個狀態狀況指出無法使用: DeploymentAvailable=False
- 確保叢集至少有兩個工作者節點。 如需相關資訊,請參閱 將工作者節點新增至標準叢集 或 將工作者節點新增至 VPC 叢集。
- 確保叢集工作者性能良好,否則無法排定 Ingress Controller Pod。 如需相關資訊,請參閱 工作者節點狀態。
一或多個狀態狀況指出無法使用: LoadBalancerReady=False
一或多個其他狀態狀況指出欠佳狀態: CanaryChecksSucceeding=False
-
確保為 Ingress 子網域登錄正確的 LoadBalancer 服務位址。
- 執行
ibmcloud oc cluster get指令 以查看 Ingress 子網域。 - 執行
ibmcloud oc nlb-dns get指令,以查看已登錄的位址。 - 執行
oc get services -n openshift-ingress指令,以取得實際負載平衡器位址。 - 比較已登錄及實際位址,並更新子網域 (如果不同的話)。
VPC: 執行
ibmcloud oc nlb-dns replace指令 以取代現行位址。 典型: 執行ibmcloud oc nlb-dns rm classic指令 來移除目前已登錄的位址,然後使用ibmcloud oc nlb-dns add指令 來新增位址。 Satellite: 實際的位址取決於您的設定:若您透過外部負載平衡器對外公開工作節點,請註冊該負載平衡器的位址;否則,請註冊在openshift-ingress命名空間中分配給router-external-default服務的 IP 位址(請使用oc get services -n openshift-ingress router-external-default -o yaml指令來取得這些位址)。 執行ibmcloud oc nlb-dns rm classic指令 來移除目前已登錄的位址,然後使用ibmcloud oc nlb-dns add指令 來新增位址。
- 執行
-
僅限 VPC: canary 性能檢查資料流量源自叢集的其中一個工作者節點。
- 性能檢查資料流量源自叢集的其中一個工作者節點。 如果叢集具有公用服務端點,則資料流量會導向至 VPC Load Balancer 實例的公用浮動 IP 位址,因此需要將 Public Gateway 連接至所有工作者子網路。 如果叢集只有專用服務端點,則資料流量會導向至 VPC 負載平衡器的 VPC 子網路 IP 位址,因此不需要 Public Gateway。 對於具有公用服務端點的叢集:
- 執行
ibmcloud is public-gateways以查看公用閘道。 - 執行
ibmcloud is subnets以查看子網路。 - 對於每個子網路,只要有公用閘道,就會執行
ibmcloud is subnet <subnet-id>來檢查。- 如果您的子網路未連接公用閘道,則需要連接公用閘道。 如需相關資訊,請參閱 建立公用閘道
- 執行
- 如果 VPC 負載平衡器位於叢集的工作者節點以外的子網路上,則必須更新連接至 VPC 負載平衡器子網路的安全群組,以容許來自工作者子網路的送入資料流量。
- 如需相關資訊,請參閱 在 Virtual Private Cloud 中建立 Red Hat OpenShift 叢集、配置 VPC 子網路 及 建立及管理 VPC 安全群組。
- 性能檢查資料流量源自叢集的其中一個工作者節點。 如果叢集具有公用服務端點,則資料流量會導向至 VPC Load Balancer 實例的公用浮動 IP 位址,因此需要將 Public Gateway 連接至所有工作者子網路。 如果叢集只有專用服務端點,則資料流量會導向至 VPC 負載平衡器的 VPC 子網路 IP 位址,因此不需要 Public Gateway。 對於具有公用服務端點的叢集:
-
請確保沒有任何防火牆規則會阻擋透過 UDP 和 TCP 傳輸的 Canary 流量或 DNS 流量。 VPC:Canary 流量源自其中一個工作節點,流經 VPC Public Gateway,並抵達 VPC 負載平衡器實例的對外端。 配置 VPC 安全群組以容許此通訊。 如需詳細資訊,請參閱 瞭解安全預設群集 VPC 網路,以及 建立和管理 VPC 安全群組。 Classic: 金絲雀流量來自其中一個工作節點的公用 IP 位址,並傳送到您的 classic 負載平衡器的公用 IP 位址。 配置網路原則以容許此通訊。 如需詳細資訊,請參閱 在傳統群集中使用網路政策控制流量。
下一步
- 等待 30 分鐘,然後執行
oc get clusteroperator ingress指令並重新檢查MESSAGE直欄。 - 如果您看到不同的錯誤訊息,請重複疑難排解步驟。
- 如果仍然發生此問題,請聯絡支援人員。 開啟 支援案例。 在案例詳細資料中,請務必包括任何相關日誌檔、錯誤訊息或指令輸出。