【发布时间】:2020-12-13 05:23:26
【问题描述】:
我有一个节点 API 部署到 Google CloudRun,它负责管理外部服务器(干净的、新的 Amazon EC2 Linux 虚拟机),包括通过 SSH 和 SFTP。 SSH 和 SFTP 实际上最终会起作用,但连接需要 2-5 分钟 才能启动。有时它们会因握手超时错误而超时。
在我的笔记本电脑上运行相同的服务,连接到相同的外部服务器,没有任何问题,并且连接速度与任何普通 SSH 连接一样快。
CloudRun 上的部署非常标准。我使用允许访问机密等的服务帐户运行它。分配了大量内存。
我设置了 VPC 连接器,并按照此处的说明通过 VPC 连接器路由了所有流量:https://cloud.google.com/run/docs/configuring/static-outbound-ip
我还尝试根据网上的一些建议在 EC2 上的 /etc/ssh/sshd_config 文件中设置 UseDNS no:SSH 登录速度慢,但这并没有什么不同。 p>
我已经重建和重新部署了几十次项目,所有测试都在全新的 EC2 实例上进行。
我正在使用 Node ssh2 库、node-ssh 和 ssh2-sftp-client 上的开源包装器尝试这些连接。
想法?
【问题讨论】:
-
如果您通过 minikube 在本地运行 Cloud Run 会发生同样的情况吗?
-
在此期间,您可能在 Cloud Run 上没有活动请求,因为在活动请求之外,CPU 会受到限制。最适合此管道的是 Cloud Workflows。
-
延迟问题通常需要检查受影响服务的日志和指标,这是我们在这里无法做到的。我建议开一张支持票。
-
这真的很有趣@Pentium10。查看我设法错过的关于 CloudRun 如何在请求之间进行节流的注释,我认为可能就是这样,因为这些是我开始响应轮询 redis 消息队列的作业。甚至轮询过程是否适合 CloudRun。这很容易返工。如果可行,我会在此处发布说明。
-
@Pentium10 - 就是这样。重新调整工作流,以便仅通过端点调用触发 CloudRun 上的 API 可以解决问题。非常感谢。
标签: amazon-web-services amazon-ec2 ssh google-cloud-run