標準: 為何無法存取叢集裡的資源?
經典基礎架構
當叢集中的工作節點無法在私有網路中通訊時,您可能會看到各種不同的症狀。
- 當您執行
kubectl exec、attach、logs、proxy或port-forward時的錯誤訊息範例:Error from server: error dialing backend: dial tcp XXX.XXX.XXX:10250: getsockopt: connection timed out kubectl proxy成功,但 Kubernetes 儀表板無法使用時的錯誤訊息範例:timeout on 172.xxx.xxx.xxxkubectl proxy失敗或服務連線失敗時的錯誤訊息範例:Connection refusedConnection timed outUnable to connect to the server: net/http: TLS handshake timeout
若要存取叢集裡的資源,您的工作者節點必須能夠在專用網路上進行通訊。 您可能已在 IBM Cloud 基礎架構帳戶中設定了 Vyatta 或其他防火牆,或者自訂了現有防火牆設定。
IBM Cloud Kubernetes Service 需要開啟特定 IP 位址及埠,以容許從工作者節點到 Kubernetes 主節點的通訊,反之亦然。 如果您的工作者節點分散在多個區域,您必須藉由啟用 VLAN Spanning 來允許專用網路通訊。 如果您的工作者節點停留在重新載入的迴圈中,則也可能無法在工作者節點之間進行通訊。
檢閱工作者節點狀態。
-
列出叢集裡的工作者節點,並驗證您的工作者節點未停留在
Reloading狀態中。ibmcloud ks worker ls --cluster <cluster_name_or_id> -
如果您具有多區域叢集,且未針對 VRF 啟用您的帳戶,請驗證您的帳戶是否 已啟用 VLAN Spanning。
-
如果您有 Vyatta 或自訂防火牆設定,請確定已開啟必要的埠,以允許叢集存取基礎架構資源和服務。
-
如果仍然發生此問題,請聯絡支援人員。 開啟 支援個案。 在案例詳細資訊中,請務必包含任何相關的記錄檔、錯誤訊息或指令輸出。