【问题标题】:Error: forwarding ports: error upgrading connection: Upgrade request required错误:转发端口:错误升级连接:需要升级请求
【发布时间】:2019-11-05 16:02:23
【问题描述】:

有人在 Kubernetes

中看到过这个错误Error: forwarding ports: error upgrading connection: Upgrade request required

【问题讨论】:

    标签: kubernetes kubectl kubernetes-helm


    【解决方案1】:

    我以前见过这个,有几个问题需要解决:

    1. 代理请求的 Nginx 不包含以下内容 配置(HTTP2 支持所需):

      proxy_set_header Upgrade 'websocket';
      proxy_set_header Connection 'Upgrade';
      
    2. 我们还必须在 AWS (ELB) 上切换传统负载均衡器 使用应用程序负载均衡器 (ALB)。

    TBH,这个问题有点含糊。你在哪里看到这个?它需要更多上下文。

    【讨论】:

    【解决方案2】:

    我们能够通过使用 kube 服务器的 ip 而不是主机名来解决它。这是由不支持 HTTP/2 的负载平衡器引起的。不要使用https://hostname 访问 Kube 的 URL,而是使用 IP 地址并禁用 SSL 验证

    kubectl config set-cluster $NAME --user=$USER --server=$KUBE_URL --insecure-skip-tls-verify=true
    

    【讨论】:

    • 您能否进一步解释一下这个答案?您是如何获得 $KUBE_URL 的?
    • 我在另一个回答中提到过:>“我们还必须使用应用程序负载均衡器 (ALB) 切换 AWS (ELB) 上的 Classic Load Balancer。”我的 ELB 上的 HTTP/2 websocket 连接失败,所以我切换到 ALB 并且它工作(可能应该尝试更改安全组以仅允许 TCP 而不是专门关注 HTTP / HTTPS)。
    【解决方案3】:

    今天尝试将 Garden.io 用于在 Jelastic 中运行的集群时遇到了这个问题。

    this Github comment找到解决方案:

    首先通过compilingdownloading it from the release page 获取Tiller(Helm 的服务器版本)的本地二进制文件。

    然后运行:

    $ export HELM_HOST=":44134"
    $ tiller -listen ${HELM_HOST} -alsologtostderr >/dev/null 2>&1 &
    

    这将运行 Kubernetes Helm 服务器的本地版本。现在再次尝试您的原始命令 kubectl,它将改为委托给这个本地 Helm 并设法连接。

    【讨论】:

      猜你喜欢
      • 2019-07-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 2018-05-24
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多