對叢集的一般 CLI 問題進行除錯
虛擬私有雲 經典基礎架構
請檢閱 CLI 連線問題或指令失敗的下列一般原因。
防火牆導致無法執行 CLI 指令
當您從 CLI 執行 ibmcloud, kubectl,oc 或 calicoctl 指令時,這些指令會失敗。
您的組織網路原則可能會導致無法透過 Proxy 或防火牆從本端系統存取公用端點。
此作業需要叢集的 管理者 IBM Cloud IAM 平台存取角色。
kubectl 或 oc 指令無法運作
當您針對群集執行 kubectl 或 oc 指令時,您的指令會以類似以下範例的錯誤訊息失敗。
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。
如果您有不同版本或不同容器平台的多個群集,例如 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 群集。
- 透過在主控台裡或使用
cluster ls或worker ls指令來檢視叢集和工作者節點的詳細資料,檢查叢集和工作者節點的更新是否可用。 如果可用,請將叢集和工作者節點更新到最新版本。 - 刪除 VPN pod,重新啟動 VPN pod。 這將排定另一個 VPN Pod。 在其 STATUS 為 Running 時,嘗試連接先前無法連接的 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 同步化。
開始之前:
若要同步化使用者的 IAM 資訊,您有 2 個選項:
- 從 Red Hat OpenShift 主控台登入群集。
- 執行
ibmcloud oc cluster config --cluster CLUSTER指令,以設定叢集的指令行環境定義。
如果您使用功能 ID 或另一個使用者的 API 金鑰,請確保以正確的使用者身分登入。
受影響使用者完成 IAM 同步化之後,叢集管理者可以使用 oc get users 指令列出使用者,以驗證該使用者是否存在於叢集中。
缺少專案或 oc 和 kubectl 指令失敗
虛擬私有雲 經典基礎架構
您看不到您可以存取的所有專案。 嘗試執行 oc 或 kubectl 指令時,看到類似下列內容的錯誤。
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 並再試一次。