API 伺服器叢集連線問題的基本疑難解答
本文討論當您無法透過 Kubernetes 叢集命令行工具 (kubectl) 或任何其他工具連線到叢集的 API 伺服器時,與 Azure Kubernetes Service (AKS) 叢集的連線問題,例如透過程式設計語言使用 REST API。
必要條件
根本原因和解決方案
API 伺服器可能會因為許多原因而發生連線問題,但根本原因通常與下列其中一個項目發生錯誤有關:
- 網路
- 驗證
- 授權
您可以採取下列常見疑難解答步驟來檢查 AKS 叢集 API 伺服器的連線:
在 Azure CLI 中輸入下列 az aks show 命令。 此命令會取得 AKS 叢集的完整功能變數名稱 (FQDN)。
az aks show --resource-group <cluster-resource-group> --name <cluster-name> --query fqdn
使用 FQDN,使用名稱伺服器查閱(nslookup)、用戶端 URL (curl) 和 telnet 命令,檢查是否可從用戶端電腦連線到 API 伺服器:
# Check if the DNS Resolution is working: $ nslookup <cluster-fqdn> # Then check if the API Server is reachable: $ curl -Iv https://<cluster-fqdn> $ telnet <cluster-fqdn> 443
如果 AKS 叢集是私人的,請確定您從可存取 AKS 叢集 Azure 虛擬網絡 的虛擬機 (VM) 執行 命令。 請參閱 連線到私人叢集的選項。
如有必要,請遵循疑難解答文章 用戶端 IP 位址無法存取 API 伺服器中的步驟,因此 API 伺服器會將您的用戶端 IP 位址新增至它授權的 IP 範圍。
請確定客戶端電腦上的 kubectl 版本不是 AKS 叢集版本的此工具後方兩個以上的次要版本。 若要安裝最新版本的 kubectl,請在 Azure CLI 中執行 az aks install-cli 命令。 然後,您可以執行 kubectl version 命令來檢查新安裝的版本號碼。
例如,在 Linux 上,您會執行下列命令:
sudo az aks install-cli kubectl version --client
針對其他用戶端操作系統,請使用這些 kubectl 安裝指示。
如有必要,請遵循疑難解答文章 Config 檔案在連線時無法使用的步驟操作,因此您的 Kubernetes 組態檔 (config) 有效,而且可在聯機時間找到。
如有必要,請遵循疑難解答文章 中的步驟,用戶無法取得叢集資源,因此您可以列出叢集節點的詳細數據。
如果您使用防火牆來控制來自 AKS 背景工作節點的輸出流量,請確定防火牆允許 AKS 的最低必要輸出規則。
請確定 與 AKS 節點相關聯的網路安全組允許在 AKS 節點 內的 TCP 連接埠 10250 上進行通訊。
如需其他常見的疑難解答步驟,請參閱 kubectl 或其他第三方工具連線到 API 伺服器時 TCP 逾時。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。