API 服务器群集连接问题的基本故障排除
本文讨论当无法通过 Kubernetes 群集命令行工具(kubectl)或任何其他工具(例如通过编程语言使用 REST API)访问群集的 API 服务器时,与 Azure Kubernetes 服务 (AKS) 群集的连接问题。
先决条件
根本原因和解决方案
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 版本 命令来检查新安装的版本号。
例如,在 Linux 上,将运行以下命令:
sudo az aks install-cli kubectl version --client
对于其他客户端操作系统,请使用这些 kubectl 安装说明。
如有必要,请按照故障排除文章 Config 文件中的步骤进行连接时不可用,因此 Kubernetes 配置文件(config)有效,可以在连接时找到。
如有必要,请按照故障排除文章 中的步骤操作,用户无法获取群集资源,因此可以列出群集节点的详细信息。
如果使用防火墙来控制来自 AKS 工作节点的出口流量,请确保防火墙允许 AKS 的最低出口规则。
确保 与 AKS 节点 关联的网络安全组允许在 AKS 节点内的 TCP 端口 10250 上进行通信。
有关其他常见故障排除步骤,请参阅 kubectl 或其他第三方工具连接到 API 服务器时 TCP 超时。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。