JupyterHub 内核连接 returns HTTP504 GATEWAY_TIMEOUT

JupyterHub kernel connection returns HTTP504 GATEWAY_TIMEOUT

我正在将 JupyterHub 0.8.2 部署到 kubernetes(AWS 上的 EKS,v1.13)。

当我通过 helm 将 JupyterHub 应用程序部署到 EKS 时,一切都会正常部署和启动。但是,当我生成一个笔记本服务器并创建一个 python 笔记本时,内核在尝试连接时挂起。 (见底部截图)

我在这里看到了一个类似的问题:https://github.com/jupyter/notebook/issues/2664,似乎在 tornado python 包中出现了回归。但是,我尝试降级到 5.1.1 并没有解决问题...

接下来我可以尝试哪些故障排除步骤?我在哪里可以找到 python 内核的诊断信息/日志?

更新: 我们现有的一个集群 运行 正常运行了大约 2 个月,直到今天才开始遇到这个内核问题。这让我想知道这是否是某种回归,但这将如何影响尚未修改的 jupyterhub 部署? jupyterhub 是否会在未经同意的情况下自行更新 libraries/packages?

更新 2: 我检查了浏览器中的网络流量,发现对 https://<<JUPYTERHUB_DOMAIN>>/user/me/api/kernels/<<KERNEL_ID>>/channels?session_id=<<SESSION_ID>> 的请求正在返回 HTTP 504 GATEWAY_TIMEOUT

详细的 HTTP 请求:

GET wss://<<MY_JHUB_DOMAIN>>/user/me/api/kernels/eaf397d3-36da-473c-8342-c4d4d3ad5256/channels?session_id=fa79dc80238648b8b1ea4c3982cb0612 HTTP/1.1
Host: <<MY_JHUB_DOMAIN>>
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: https://<<MY_JHUB_DOMAIN>>
Sec-WebSocket-Version: 13
User-Agent: redacted
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: redacted
Sec-WebSocket-Key:redacted
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits

详细的 HTTP 响应:

HTTP/1.1 504 GATEWAY_TIMEOUT
Content-Length: 0
Connection: keep-alive

data:undefined,

问题是我们将代理-public ELB 切换为侦听 http 而不是 tcp,这破坏了内核端点,因为它使用网络套接字

我希望我们在提供 100 代表赏金后 10 分钟没有发现这个:(

问题是代理-public ELB 被切换为侦听 http 而不是 tcp,这破坏了内核端点,因为它使用网络套接字。

感谢 OP 解决了他们自己的问题。