對 API 伺服器的叢集連線問題進行基本疑難解答

本文討論當您無法透過 Kubernetes 叢集命令行工具 (kubectl) 或其他任何工具連線到叢集的 API 伺服器時,Azure Kubernetes Service (AKS) 叢集的連線問題,例如透過程式設計語言使用 REST API。

必要條件

根本原因和解決方案

API 伺服器的連線問題可能因為許多原因而發生,但根本原因通常與下列其中一個專案的錯誤有關:

  • 網路
  • 驗證
  • 授權

您可以採取這些常見的疑難解答步驟來檢查 AKS 叢集 API 伺服器的連線能力:

  1. 在 Azure CLI 中輸入下列 az aks show 命令。 此命令會取得 AKS 叢集的 FQDN) (完整功能變數名稱。

    az aks show --resource-group <cluster-resource-group> --name <cluster-name> --query fqdn
    
  2. 使用 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
    
  3. 如果 AKS 叢集是私人的,請務必從可存取 AKS 叢集 Azure 虛擬網路 的虛擬機 (VM) 執行命令。 請參閱 連線到私人叢集的選項

  4. 如有必要,請遵循疑難解答文章用戶端 IP 位址無法存取 API 伺服器中的步驟,因此 API 伺服器會將您的用戶端 IP 位址新增至其授權的 IP 範圍。

  5. 請確定客戶端電腦上的 kubectl 版本不是 AKS 叢集版本之後的兩個或多個次要版本。 若要安裝最新版的 kubectl,請在 Azure CLI 中執行 az aks install-cli 命令。 然後,您可以執行 kubectl version 命令來檢查新安裝的版本號碼。

    例如,在 Linux 上,您會執行下列命令:

    sudo az aks install-cli
    kubectl version --client
    

    針對其他用戶端操作系統,請使用這些 kubectl 安裝指示

  6. 如有必要,請遵循疑難解答文章中的步驟:連線 時無法使用組態檔,因此您的 Kubernetes 組態檔 (組態) 有效,而且可以在連線時找到。

  7. 如有必要,請遵循疑難解答文章 用戶無法取得叢集資源中的步驟,以便列出叢集節點的詳細數據。

  8. 如果您使用防火牆來控制來自 AKS 背景工作節點的輸出流量,請確定防火牆允許 AKS 的最低必要輸出規則

  9. 請確定 與 AKS 節點相關聯的網路安全組 允許在 AKS 節點內的 TCP 連接埠 10250 上進行通訊。

如需其他常見的疑難解答步驟,請參閱 我在使用 kubectl 或其他連線到 API 伺服器的第三方工具時收到 TCP 逾時

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群