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

AWS ALB终止TLS后EKS容器出现目标TLS协商错误求解决方案

解决AWS EKS ALB "目标TLS协商错误" 的建议

出现这个错误的核心原因是ALB尝试通过HTTPS协议与后端目标(你的应用Pod)建立连接,但你的应用仅监听HTTP的1429端口,导致TLS协商失败。以下是具体的排查和解决步骤:

  • 显式配置Ingress的后端协议
    AWS ALB Ingress Controller有时会根据端口或默认配置推断后端协议,你需要通过注解强制指定后端使用HTTP。在你的Ingress资源中添加以下注解:

    annotations:
      alb.ingress.kubernetes.io/backend-protocol: HTTP
    

    之后重新应用Ingress配置:kubectl apply -f your-ingress.yaml,控制器会自动更新对应的目标组协议。

  • 验证目标组的协议配置
    登录AWS控制台,找到ALB关联的目标组,检查目标组的"协议"字段是否为HTTP,端口是否为1429。如果目标组协议是HTTPS,说明之前的Ingress配置没生效,手动修改目标组协议为HTTP(或重新应用正确的Ingress配置让控制器自动修正)。

  • 确认Service与Pod的端口配置
    检查你的Kubernetes Service资源,确保targetPort指向Pod的1429端口,且Service没有配置TLS相关的字段(因为你的应用是HTTP服务)。示例Service配置片段:

    spec:
      ports:
      - port: 80  # 这里是Service的端口,ALB会转发到这个端口再映射到targetPort
        targetPort: 1429
        protocol: TCP
    

    同时确认Deployment中容器的containerPort设置为1429,且应用确实在该端口监听HTTP请求。

  • 检查ALB监听器的转发规则
    确认ALB的HTTPS 443监听器,其转发规则指向的是HTTP协议的目标组,而非HTTPS目标组。如果关联了错误的目标组,修改转发规则指向正确的目标组即可。

  • 修正目标组的健康检查配置
    目标组的健康检查协议也需要与后端一致,设置为HTTP,端口1429,健康检查路径可以根据你的应用情况设置(比如/healthz或/)。如果健康检查用了HTTPS,同样会触发TLS协商错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:36:13