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
相关产品推荐
相关产品推荐

