You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署至Cloud Run后Envoy外部认证出现上游连接错误求助

问题定位与修复方案

核心问题

你的Envoy集群配置缺少TLS加密配置,Cloud Run服务仅接受HTTPS/加密的gRPC请求,而当前配置直接以明文方式连接443端口,导致连接失败。

具体修复步骤

1. 为auth集群添加TLS配置

在cluster配置中加入tls_context,启用对Cloud Run服务的加密连接:

- name: auth
  type: STRICT_DNS
  lb_policy: ROUND_ROBIN
  typed_extension_protocol_options:
    envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
      "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
      explicit_http_config:
        http2_protocol_options: { }
  # 新增TLS配置
  transport_socket:
    name: envoy.transport_sockets.tls
    typed_config:
      "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
      sni: cloud-run-address  # 替换为你的Cloud Run认证服务域名
      common_tls_context:
        validation_context:
          trusted_ca:
            filename: /etc/ssl/certs/ca-certificates.crt  # 使用容器内置的根证书
  load_assignment:
    cluster_name: auth
    endpoints:
      - lb_endpoints:
          - endpoint:
              address:
                socket_address:
                  address: cloud-run-address
                  port_value: 443

2. 验证Envoy容器的根证书

确保你的Envoy Docker镜像包含系统根证书(大多数官方Envoy镜像默认包含),如果没有,需要在Dockerfile中添加安装证书的步骤:

FROM envoyproxy/envoy:v1.24-latest
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*

3. 可选:优化DNS解析策略

Cloud Run服务域名会解析到多个动态IP,可添加dns_refresh_rate确保Envoy及时更新IP列表:

dns_refresh_rate: 30s

本地正常的原因

本地环境中你的认证服务可能未启用HTTPS(或使用明文端口),Envoy明文连接可正常建立;但Cloud Run强制要求加密通信,缺少TLS配置就会触发连接失败。

内容的提问来源于stack exchange,提问作者Baki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:05:25