客户端 IP 地址无法访问 API 服务器

本文介绍如何修复由于客户端 IP 地址无法访问 AKS API 服务器而无法连接到 Azure Kubernetes 服务 (AKS) 群集时出现的问题。

先决条件

  • Azure CLI
  • curl) 工具 (客户端 URL

症状

你可能会看到如下错误:

Unable to connect to the server: dial tcp <API-SERVER-IP>:443: i/o timeout

Unable to connect to the server: dial tcp <API-SERVER-IP>:443: connectex: A connection attempt failed because the connected party did not properly respond after a period, or established connection failed because connected host has failed to respond.

原因

可能已在群集的 API 服务器上启用了 API 服务器授权的 IP 范围,但客户端的 IP 地址未包含在 IP 范围中。 若要检查此功能是否已启用,请查看 Azure CLI 中的以下 az aks show 命令是否生成 IP 范围列表:

az aks show --resource-group <cluster-resource-group> \
    --name <cluster-name> \
    --query apiServerAccessProfile.authorizedIpRanges

解决方案

查看群集的 API 服务器授权范围,并使用以下步骤在该范围内添加客户端的 IP 地址:

注意

  1. 是否从通过代理服务器或防火墙路由流量的公司网络访问 API 服务器? 然后,在将客户端 IP 地址添加到 API 服务器的授权范围列表中之前,请询问网络管理员。

  2. 在添加客户端 IP 地址之前,请询问群集管理员,因为向授权范围列表添加临时 IP 地址可能存在安全问题。

  1. 通过运行以下 curl 命令获取客户端 IP 地址:

    $ curl --silent checkip.dyndns.org
    <html><head><title>Current IP Check</title></head><body>Current IP Address: 0.255.127.63</body></html>
    
  2. 使用客户端 IP 地址在 Azure CLI 中使用 az aks update 命令更新 API 服务器授权的范围:

    az aks update --resource-group <cluster-resource-group> \
        --name <cluster-name> \
        --api-server-authorized-ip-ranges <ip-ranges-that-include-your-client-ip-address>
    

联系我们寻求帮助

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