API 服务器群集连接问题的基本故障排除

本文讨论无法通过 Kubernetes 群集命令行工具 (kubectl) 或任何其他工具(例如通过编程语言使用 REST API)访问群集的 API 服务器时,与 Azure Kubernetes 服务 (AKS) 群集的连接问题。

先决条件

根本原因和解决方案

与 API 服务器的连接问题可能有多种原因,但根本原因通常与以下项之一的错误有关:

  • 网络
  • 身份验证
  • Authorization

可以采取以下常见故障排除步骤来检查与 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. 如有必要,请按照 故障排除文章 Config 文件在连接时不可用中的步骤进行操作,以便 Kubernetes 配置文件 (配置) 有效,并且可以在连接时找到。

  7. 如有必要,请按照故障排除文章 用户无法获取群集资源中的步骤操作,以便列出群集节点的详细信息。

  8. 如果使用防火墙来控制来自 AKS 工作器节点的出口流量,请确保防火墙允许 AKS 所需的最低出口规则

  9. 确保 与 AKS 节点关联的网络安全组允许在 AKS 节点 中的 TCP 端口 10250 上进行通信。

有关其他常见故障排除步骤,请参阅 使用 kubectl 或其他连接到 API 服务器的第三方工具时收到 TCP 超时

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 还可以向 Azure 反馈社区提交产品反馈。