對叢集的一般 CLI 問題進行除錯

虛擬私有雲 經典基礎架構

請檢閱 CLI 連線問題或指令失敗的下列一般原因。

防火牆導致無法執行 CLI 指令

當您從 CLI 執行 ibmcloud, kubectl,occalicoctl 指令時,這些指令會失敗。

您的組織網路原則可能會導致無法透過 Proxy 或防火牆從本端系統存取公用端點。

允許 TCP 存取以讓 CLI 指令運作

此作業需要叢集的 管理者 IBM Cloud IAM 平台存取角色

kubectloc 指令無法運作

當您針對群集執行 kubectloc 指令時,您的指令會以類似以下範例的錯誤訊息失敗。

No resources found.
Error from server (NotAcceptable): unknown (get nodes)
invalid object doesn't have additional properties
error: No Auth Provider found for name "oidc"

您的 kubectl 版本與叢集版本不同。

Kubernetes 不支援 kubectl 與伺服器版本相差 2 個或更多版本 (n +/- 2) 的用戶端版本。 如果您使用社群 Kubernetes 叢集,則也可能具有 kubectl 的 Red Hat OpenShift 版本,它無法與社群 Kubernetes 叢集搭配使用。

若要根據群集伺服器版本檢查用戶端的 kubectl 版本,請執行 oc version --short

安裝符合叢集版本的 CLI 版本

如果您有不同版本或不同容器平台的多個群集,例如 Red Hat OpenShift,請將每個 kubectl 版本的二進位檔案下載到單獨的目錄。 然後,您可以在本機命令列介面 (CLI) 設定設定檔中設定別名,指向與您要使用的 kubectl 版本相符合的 kubectl 二進位檔案目錄,或者您也許能夠使用 brew switch kubernetes-cli <major.minor> 之類的工具。

嘗試連接至 Pod 時逾時

您嘗試連接至 Pod,例如使用 oc exec 登入或使用 oc logs 取得日誌。 pod 是健康的,但您會看到類似以下範例的錯誤訊息。

Error from server: Get https://<10.xxx.xx.xxx>:<port>/<address>: dial tcp <10.xxx.xx.xxx>:<port>: connect: connection timed out

VPN 伺服器遇到設定問題,無法從其內部位址存取 Pod。

開始之前:存取您的 Red Hat OpenShift 群集

  1. 透過在主控台裡或使用 cluster lsworker ls 指令來檢視叢集和工作者節點的詳細資料,檢查叢集和工作者節點的更新是否可用。 如果可用,請將叢集和工作者節點更新到最新版本
  2. 刪除 VPN pod,重新啟動 VPN pod。 這將排定另一個 VPN Pod。 在其 STATUSRunning 時,嘗試連接先前無法連接的 Pod。
    oc delete pod -n kube-system -l app=vpn
    

嘗試透過 oc login 登入 Red Hat OpenShift 叢集時發生 500 錯誤

當您第一次嘗試透過 oc login 登入 Red Hat OpenShift 叢集時,看到類似以下範例的錯誤訊息。

$ oc login SERVER -u apikey -p <APIKEY>
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

Error from server (InternalError): Internal error occurred: unexpected response: 500

最近對 IAM 使用者角色所做的一些變更尚未同步至 Red Hat OpenShift 群集。

將 IAM 使用者資訊同步化至 Red Hat OpenShift 群集。 執行起始使用者同步化之後,應該會自動進行進一步的 RBAC 同步化。

開始之前:

存取您的 Red Hat OpenShift 叢集

若要同步化使用者的 IAM 資訊,您有 2 個選項:

  • 從 Red Hat OpenShift 主控台登入群集。
  • 執行 ibmcloud oc cluster config --cluster CLUSTER 指令,以設定叢集的指令行環境定義。

如果您使用功能 ID 或另一個使用者的 API 金鑰,請確保以正確的使用者身分登入。

受影響使用者完成 IAM 同步化之後,叢集管理者可以使用 oc get users 指令列出使用者,以驗證該使用者是否存在於叢集中。

缺少專案或 ockubectl 指令失敗

虛擬私有雲 經典基礎架構

您看不到您可以存取的所有專案。 嘗試執行 ockubectl 指令時,看到類似下列內容的錯誤。

No resources found.
Error from server (Forbidden): <resource> is forbidden: User "IAM#user@email.com" can't list <resources> at the cluster scope: no RBAC policy matched

您需要下載群集的 admin 設定檔案,才能執行需要 cluster-admin 群集角色的指令。

執行 ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin 並再試一次。