kubectl: net/http: TLS 握手超时

kubectl: net/http: TLS handshake timeout

我按照快速入门文档 (here) 在西欧地区部署了一个 k8s 集群。集群启动正常,但我无法使用 kubectl 连接到它 - kubectl 在尝试执行 TLS 握手时超时:

Unable to connect to the server: net/http: TLS handshake timeout

There is currently a github issue where others are reporting the same problem.

根据线程上的一些建议,我尝试执行从 1.8.1 到 1.8.2 的升级,但失败了:

bash-4.3# az aks upgrade --resource-group=k8s --name=phlo -k 1.8.2
Kubernetes may be unavailable during cluster upgrades.
Are you sure you want to perform this operation? (y/n): y
 / Running ..
Deployment failed. Correlation ID: <redacted>. Operation failed with status: 200. Details: Resource state Failed

根据 github 线程中的其他人的说法,这似乎是一个特定于区域的问题。

在忽略了 k8s 集群准备就绪时的 Azure CLI 响应并观察 Azure 控制台 AKS 概览部分中的 "creating..." 栏消失后,我能够得到一个有效的 AKS 设置。

如果您仍然卡住,这里有一些好的评论:https://github.com/Azure/AKS/issues/112

我的解决方案是从 Azure Kubernetes 服务 blade Web 控制台扩展集群中的节点。

解决方法/解决方案

一个有趣的解决方案(对我有用!)来测试...

  1. 登录到 Azure 控制台 — Kubernetes 服务 blade。
  2. 将集群扩展 1 个节点。
  3. 等待秤完成并尝试连接(您应该能够连接)。
  4. 将您的集群缩小到正常大小以避免成本增加。

我总共花了 ~2 分钟。

有关此问题的更多背景信息

将此添加到我在此处发布的完整票证描述中(如果您想了解更多信息,请阅读):

'Unable to connect Net/http: TLS handshake timeout' — Why can't Kubectl connect to Azure AKS server?

对我来说,在 Mac 上释放一些 space 后问题就消失了 然后使用 kubectl proxy

再次启动代理