【问题标题】:TLS handshake timeout with kubernetes in GKEGKE 中与 kubernetes 的 TLS 握手超时
【发布时间】:2018-05-08 22:13:40
【问题描述】:

我在 Google Kubernetes Engine(以前的 Google Container Engine)上创建了一个集群,并在我的 Windows 机器上安装了 Google Cloud SDK 和 Kubernetes 工具。

它运行了一段时间,然后突然停止运行。我使用kubectl 发出的每个命令都会引发以下问题:

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

我搜索了谷歌、Kubernetes Github 问题、堆栈溢出、服务器故障……没有成功。

我尝试了以下方法:

  • 重启我的电脑
  • 更改 wifi 连接
  • 检查我没有以某种方式使用代理
  • 删除并重新创建我的集群
  • 从我的机器上卸载 Google Cloud SDK(和 kubectl)并重新安装它们
  • 删除我的.kube 文件夹(配置和缓存)
  • 查看我的.kube/config
  • 更改集群的版本(已尝试 1.8.3-gke.0 和 1.7.8-gke.0)
  • 几小时后重试
  • 在 PowerShell 和 cmd.exe 上都试过了

请注意,集群似乎运行良好,因为我的应用程序在其上运行,并且可以通过 Google Cloud Shell 与其正常交互。

跑步:

gcloud container clusters get-credentials cluster-2 --zone europe-west1-b --project ___

kubectl get pods

在 Google Cloud Shell 上工作并在我的机器上触发 TLS handshake timeout

【问题讨论】:

  • 你如何设置你的 kube 配置?
  • gcloud container clusters get-credentials cluster-2
  • 此集群是否运行任何工作负载?如果是,您使用的是 Jobs 吗?谷歌云外壳上的响应似乎也很慢吗?已部署 pod 的模糊快照会很有帮助。
  • 集群正在运行 1 个部署和 1 个服务。不使用乔布斯。响应速度非常快,在 Google Cloud Shell 上不到 1 秒。部署的 pod:i.imgur.com/wTtBGbl.png
  • 这是我的部署描述:text-share.com/view/b9ee3e98。但我认为问题不在于我的工作负载/吊舱:kubectl.exe cluster-info dump 给了我Unable to connect to the server: net/http: TLS handshake timeout。我根本无法连接...

标签: kubernetes google-cloud-platform google-kubernetes-engine kubectl


【解决方案1】:

所以这可能不适用于您在 GKE 上,但 Azure AKS(托管 Kubernetes)也有类似的问题和相同的错误消息,所以谁知道 - 这可能对某人有帮助。

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

解决方法/解决方案

  1. 登录到 Azure(或 GKE)控制台 - Kubernetes 服务 UI。
  2. 将您的集群扩大 1 个节点。
  3. 等待规模完成并尝试连接(您应该可以)。
  4. 将您的集群缩回到正常大小以避免成本增加。

我花了大约 2 分钟的总时间。

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

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

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

【讨论】:

    【解决方案2】:

    对于看到此问题的其他人,还有另一个需要考虑的原因。

    做完之后:

    gcloud config set project $PROJECT_NAME
    gcloud config set container/cluster $CLUSTER_NAME
    gcloud config set compute/zone europe-west2
    gcloud beta container clusters get-credentials $CLUSTER_NAME --region europe-west2 --project $PROJECT_NAME
    

    当时我看到了:

    kubectl cluster-info
    Unable to connect to the server: net/http: TLS handshake timeout
    

    我尝试了这里和其他地方的所有建议。当上述操作在我的家庭桌面上正常运行时,我发现共享工作区 wifi 正在破坏 TLS/VPN 以控制互联网访问!

    【讨论】:

    • 谢谢,我遇到了同样的问题。我想找到一种解决方法,因为切换到网络共享来更新集群非常不方便。你知道它如何改变连接吗?
    • 遗憾的是没有。我使用了移动网络共享,我的公司正在考虑为此购买一个工作 mifi。最后我们搬了楼,我没有任何问题了。我浪费了 6 个多月的时间与各种 IT 人员试图让他们解决这个问题:(
    【解决方案3】:

    这就是我为解决上述问题所做的。 我只是运行了以下命令::

    > gcloud container clusters get-credentials {cluster_name} --zone {zone_name} --project {project_name}
    
    > gcloud auth application-default login
    

    适当地替换占位符。

    【讨论】:

      猜你喜欢
      • 2018-06-27
      • 2018-12-20
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 2021-06-16
      • 2016-02-08
      • 2021-03-15
      • 1970-01-01
      相关资源
      最近更新 更多