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

EKS中使用LoadBalancer暴露Apache ActiveMQ非HTTP流量失败排查

AWS NLB无法转发流量到Apache ActiveMQ Pod问题排查

我需要将Apache ActiveMQ Pod暴露给集群外系统,已成功创建内部Network Load Balancer(NLB),但流量始终无法转发到Pod;直接使用Service DNS或端口转发则可正常访问。

已创建的NLB信息

❯ kubectl get svc amq-jls-dev-mq -n jls-dev
NAME             TYPE           CLUSTER-IP      EXTERNAL-IP                                                                         PORT(S)                                                         AGE
amq-jls-dev-mq   LoadBalancer   172.20.69.156   xxx.elb.us-gov-west-1.amazonaws.com   8161:32071/TCP,61616:32509/TCP,5672:31654/TCP,61613:30383/TCP   5m38s

这是一个内部NLB,我已通过隧道接入VPC,解析NLB的IP地址:

dig +short xxx.elb.us-gov-west-1.amazonaws.com
10.1.5.0

NLB访问测试(无响应)

尝试使用NLB的IP访问STOMP端口,无任何响应:

❯ pipenv run python -m stomp -V -H 10.1.5.0 -P 61613
Sending {cmd=STOMP,headers=[{'accept-version': '1.1'}],body=}

端口转发测试(正常访问)

关闭VPC隧道,直接通过端口转发访问Service:

❯ kubectl port-forward --namespace=jls-dev service/amq-jls-dev-mq 61613:61613
Forwarding from 127.0.0.1:61613 -> 61613
Forwarding from [::1]:61613 -> 61613
Handling connection for 61613

重复STOMP测试,可正常连接:

❯ pipenv run python -m stomp -V -H localhost -P 61613
Sending {cmd=STOMP,headers=[{'accept-version': '1.1'}],body=}
CONNECTED
server: ActiveMQ/5.17.4
heart-beat: 0,0
session: ID:amq-jls-dev-0-45419-1680110010366-3:1
version: 1.1

当前配置信息

看起来可能遗漏了某些配置,以下是当前的Service注解和完整配置:

Service注解

service.beta.kubernetes.io/aws-load-balancer-internal: "true"
    service.beta.kubernetes.io/aws-load-balancer-scheme: internal
    service.beta.kubernetes.io/aws-load-balancer-type: nlb

Service完整配置

spec:
  allocateLoadBalancerNodePorts: true
  clusterIP: 172.20.69.156
  clusterIPs:
  - 172.20.69.156
  externalTrafficPolicy: Local
  healthCheckNodePort: 30744
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: http
    nodePort: 32071
    port: 8161
    protocol: TCP
    targetPort: http
  - name: openwire
    nodePort: 32509
    port: 61616
    protocol: TCP
    targetPort: openwire
  - name: amqp
    nodePort: 31654
    port: 5672
    protocol: TCP
    targetPort: amqp
  - name: stomp
    nodePort: 30383
    port: 61613
    protocol: TCP
    targetPort: stomp
  selector:
    app.kubernetes.io/instance: amq-jls-dev
    app.kubernetes.io/name: amq
  sessionAffinity: None
  type: LoadBalancer

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:15:45