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

AWS ALB Ingress对接Kubernetes gRPC服务出现HTTP1.x连接错误如何解决

错误原因

gRPC底层强制依赖HTTP/2协议传输,你收到的14 UNAVAILABLE: Trying to connect an http1.x server报错,本质是BloomRPC发出的HTTP/2格式的gRPC请求,收到了ALB返回的HTTP/1.x响应,具体触发原因有以下几点:

  • AWS ALB默认HTTPS监听端口使用HTTP/1.1协议,你当前Ingress配置仅指定了监听50051 HTTPS端口,未显式声明该端口使用HTTP/2协议,ALB对外响应使用HTTP/1.1直接触发报错
  • 健康检查配置不匹配:你当前使用HTTP协议请求根路径做健康检查,gRPC服务默认不会响应HTTP/1.x的根路径请求,会导致ALB判定后端节点不健康,返回异常HTTP/1.x错误响应
  • 若你使用的K8s集群版本≥1.19,networking.k8s.io/v1beta1版本的Ingress资源已被废弃,可能导致ALB相关注解不生效

修复方案

1. 修改Ingress监听配置,启用HTTP/2协议

替换ingress.yaml中的alb.ingress.kubernetes.io/listen-ports注解,显式指定50051端口使用HTTP/2协议:

alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS": 50051, "Protocol": "HTTP2"}]'

2. 调整健康检查配置适配gRPC服务

修改健康检查相关注解,使用gRPC标准健康检查路径,匹配gRPC响应状态码:

# 若后端gRPC服务已启用TLS则保持HTTPS,未启用则改为HTTP
alb.ingress.kubernetes.io/healthcheck-protocol: HTTPS
alb.ingress.kubernetes.io/healthcheck-path: /grpc.health.v1.Health/Check
alb.ingress.kubernetes.io/healthcheck-success-codes: "0,12,200"

如果你的gRPC服务暂时没有实现健康检查接口,可以临时将成功状态码范围放宽为200-499做验证,后续再补全健康检查逻辑。

3. 适配K8s版本更新Ingress配置(可选,针对1.19+版本集群)

将Ingress的apiVersion升级为正式版,调整spec格式适配新版规范:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: {{.Values.name}}-ingress
  namespace: {{.Values.namespace}}
  annotations:
    # 保留原有其他ALB相关注解,删除kubernetes.io/ingress.class: alb注解
    ...
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: {{.Values.name}}-svc
                port:
                  number: 50051

4. 验证后端服务协议匹配

检查你的gRPC服务是否启用了TLS:

  • 若后端gRPC服务未启用TLS,将Ingress注解alb.ingress.kubernetes.io/backend-protocol: HTTPS改为alb.ingress.kubernetes.io/backend-protocol: HTTP
  • 确认BloomRPC访问时已经信任ALB使用的证书,或开启了跳过TLS验证选项

内容的提问来源于stack exchange,提问作者sd-gallowaystorm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:06:04