【问题标题】:Upgrade Request Required when running exec in Kubernetes在 Kubernetes 中运行 exec 时需要升级请求
【发布时间】:2016-09-17 21:09:12
【问题描述】:

我使用fabric8 Kubernetes Java客户端并通过HTTP访问Kubernetes,我遵循了示例 fabric8 但我收到以下错误:

Expected HTTP 100 but received 400 instead, Bad Request.

我需要做什么才能将我的连接升级到 http/2?

【问题讨论】:

  • 看起来 Kubernetes API 服务器不喜欢您的请求。你有更多关于 HTTP 400 错误的详细信息吗?

标签: java kubernetes fabric8


【解决方案1】:

我发现这与http2有关,因为Kubernetes exec使用SPDY,当我升级到curl版本> 7.36并在服务器上安装nghttp2时问题消失了。

安装 curl 后,我可以通过添加一些标题来获得响应

curl -H "Connection: upgrade" -H "Upgrade: SPDY/3.1" {master url:port/pod/exec}

【讨论】:

  • 嗨,我对这些标题没有任何运气,curl -H "Connection: upgrade" -H "Upgrade: SPDY/3.1" http://172.10.2.4:8080/api/v1/namespaces/mailho/pods/webmail-2495503454-zufoc/exec?container=webmail&command=ls [2] 28991 。我得到的回复[2] 28991
  • 当你的 shell 看到 & 时,它正在后台处理进程。您需要将整个 URL 用引号括起来以避免评估特殊字符 - curl -H "Connection: upgrade" -H "Upgrade: SPDY/3.1" "http://172.10.2.4:8080/api/v1/namespaces/mailho/pods/webmail‌​-2495503454-zufoc/ex‌​ec?container=webmail‌​&command=ls"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多