在GKE中使用kubernetes进行TLS握手超时

时间:2017-11-24 23:03:53

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

我已经在Google Kubernetes Engine(以前的Google容器引擎)上创建了一个群集,并在我的Windows计算机上安装了Google Cloud SDK和Kubernetes工具。

它运作良好一段时间,并且无处不在,它停止了工作。我用kubectl发出的每个命令都会引发以下情况:

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

我搜索了Google,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

3 个答案:

答案 0 :(得分: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以控制互联网访问!

答案 1 :(得分:0)

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

> gcloud container clusters get-credentials {cluster_name} --zone {zone_name} --project {project_name}

> gcloud auth application-default login

适当地替换占位符。

答案 2 :(得分:0)

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

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

解决方法/解决方案

  1. 登录Azure(或GKE)控制台 - Kubernetes服务用户界面。
  2. 按1节点扩展群集。
  3. 等待比例尺完成并尝试连接(您应该可以)。
  4. 将群集缩小至正常大小以避免成本增加。
  5. 我花了约2分钟的总时间。

    关于问题的更多背景信息

    将此添加到我在此处发布的完整故障单描述(如果您想要阅读更多信息):

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