IBM Cloud Kubernetes Service 中的應用程式疑難排解
虛擬專用雲端 經典基礎設施 Satellite
下列步驟可協助您對叢集內的應用程式問題進行疑難排解,並找出應用程式錯誤或問題的主要原因。
檢閱 IBM Cloud 的狀態
- 若要查看 IBM Cloud 是否可用,請檢查 IBM Cloud 狀態頁面。
- 篩選器的 Kubernetes Service 元件。
- 檢閱 限制和已知問題文件。
- 如需 IBM Cloud所使用開放程式碼專案中的問題,請參閱 IBM 開放程式碼及協力廠商原則。 例如,您可以檢查 Kubernetes 未解決問題。
取得叢集狀態及狀態,並檢閱一般問題
-
列出叢集,並尋找叢集的
State。ibmcloud ks cluster ls -
檢閱叢集的
State。 如果您的群集處於 Critical(關鍵 )、Delete failed(刪除失敗 )或 Warning(警告 )狀態,或長時間停留在 Pending(等待 )狀態。 如需相關資訊,請參閱 叢集狀態。 -
檢閱每一個工作者節點的狀態。 如需詳細資訊,請參閱 Worker 節點狀態。
ibmcloud ks worker ls -c CLUSTER -
查看以下資訊以偵錯或解決工作節點問題。
收集詳細資料並記載問題
記載問題的詳細資料時,請盡可能明確。 例如,Our app occasionally gets 502 Gateway errors when trying to retrieve transaction logs 沒有幫助,因為它不是特定的。 確保在記錄問題之前,儘可能縮小問題的範圍。 記載問題時,請嘗試包含下列項目。
- 環境架構
- 確保您已記錄環境架構,以便瞭解所涉及的元件。 如需相關資訊,請參閱 記載環境架構。
- 錯誤訊息及元件詳細資料。
- 提供完整錯誤訊息,並包括關於哪個元件產生錯誤的詳細資料。 例如,「clusterID ABCDEF 中的所有三個應用程式 Pod 偶爾會在 HTTPS 從全局負載平衡器呼叫 GET /transaction-logs 時失敗,並出現錯誤
HTTP 502 Gateway Error: Web server received an invalid response while acting as a gateway or proxy server...」。 - 連線的來源 IP、目的地 IP、埠及通訊協定。
- 例如,「Kubernetes 叢集裡具有 clusterID ABCDEF 的所有三個應用程式 Pod。 在嘗試 GET /transaction-logs 到 GLB 時,HTTPS 呼叫偶爾會失敗,出現錯誤 The source pod IP is
172.22.5.10and destination IP is150.40.40.35port 433. 協定為 HTTPS。 其他 Pod 也會使用此 IP 位址,如其他兩個 GLB IP150.40.40.55及150.40.40.75"。 - 問題的開始日期、時間及頻率。
- 檢視下列訊息範例。
- 此問題會影響大約 2% 的所有連線嘗試。
- 此問題只在 19:00 和 21:00 UTC 之間發生,在這些時間內,大約會影響所有連線嘗試的 5%。
- 從 Pod ID
XYZ連接時發生此問題。 問題開始於10/25/2023大約 05:30 UTC。
- 對您已採取的動作進行疑難排解。
- 記載到目前為止已嘗試的項目,以及這些嘗試的結果,以協助進一步縮小問題的範圍。
執行測試以在每一個元件中建立規則或排除每一個元件
- 請嘗試在完整應用程式流程之外重建問題。 這可能涉及下列各項。
- 在個別系統上或在叢集裡的測試 Pod 中使用
curl來連接至後端端點或服務,以排除用戶端可能是問題的來源。 - 嘗試從用戶端或從叢集中的測試 Pod 連接至已知端點 (例如
www.ibm.com)。 如果已知端點持續運作,但實際應用程式端點無法運作,則有助於縮小問題的範圍。
- 在個別系統上或在叢集裡的測試 Pod 中使用
- 請嘗試使用測試叢集在測試環境中重建問題。
- 如果您 無法 在測試叢集中重建問題,則可以將焦點放在測試叢集與實際叢集之間的差異,作為問題的可能來源。
- 如果您 可以 在測試叢集中重建它,則它可能不是叢集本身的問題。 此外,您也可以在環境中進行測試,以進一步縮小問題範圍,而不會影響正式作業環境。
收集更多資料
一旦您知道應用程式流程、您看到的特定錯誤,以及該錯誤的來源,您可以從涉及的元件收集更詳細的資料。 這可能包括下列日誌。
在 Slack 中聯絡或檢閱使用者討論區,以瞭解類似問題
- 在 Kubernetes Service Slack 中張貼。
- 如果您是外部使用者,請在 #general 頻道張貼。
- 查看 Kubernetes Service help 或 Stack Overflow 等論壇,看看其他使用者是否遇到相同的問題。 使用討論區提問時,請標記您的問題,以便 IBM Cloud 開發團隊能看到它。
- 如果您有任何關於使用 IBM Cloud Kubernetes Service 開發或部署群集或應用程式的技術問題,請在 Stack Overflow 上發佈您的問題,並使用
ibm-cloud和containers標記您的問題。 - 如需使用討論區的詳細資料,請參閱取得協助。
- 如果您有任何關於使用 IBM Cloud Kubernetes Service 開發或部署群集或應用程式的技術問題,請在 Stack Overflow 上發佈您的問題,並使用
下一步
如果仍然發生此問題,請聯絡支援人員。 開啟 支援案例。 在案例詳細資料中,請務必包括任何相關日誌檔、錯誤訊息或指令輸出。