kubernetes Rabbitmq服务在k3s pod中无法访问?

qjp7pelc  于 2023-04-20  发布在  Kubernetes
关注(0)|答案(1)|浏览(319)

我有以下设置:K3 S安装和IST 10作为入口控制器,
我们面临的问题是,rabbitmq服务无法从Pod内部访问。

  • 一个暴露了rabbitmq端口的服务[5671] -〉type: ClusterIP
$ kubectl describe service rabbit-svc -n rabbit
 ......
 Type:              ClusterIP
 IP Family Policy:  SingleStack
 IP Families:       IPv4
 IP:                10.43.139.126
 IPs:               10.43.139.126
 ......
 Port:              https  443/TCP
 TargetPort:        443/TCP
 Endpoints:         10.42.0.222:443
 Port:              rabbitmq  5671/TCP
 TargetPort:        5671/TCP
 Endpoints:         10.42.0.222:5671
  • 如果我尝试从k3 sPod外部机器内部通过clusterIP连接到服务,它会做出响应
openssl s_client -connect 10.43.139.126:5671
CONNECTED(00000003)
  • 如果我尝试通过服务k8s fqdn从istio pod连接到pod,它会拒绝连接
openssl s_client -connect rabbit-svc.rabbit.svc.cluster.local:5671
139693269235008:error:0200206F:system library:connect:Connection refused:../crypto/bio/b_sock2.c:110:
139693269235008:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=111

知道为什么会发生这种情况吗?虽然我有另一个端口从rabbitmq服务内部通过443暴露,它响应良好[这只是为了排除DNS问题]

xxe27gdn

xxe27gdn1#

连接错误:111可能是由于以下问题,你能检查一下吗:

  • 使用nmap或telnet检查端口5671是打开还是阻塞。
  • 检查是否有防火墙阻止此端口/主机。尝试禁用防火墙并进行检查
  • 您的istio似乎启用了SSL证书-这会阻止端口5671到达连接。您可以禁用SSL证书并进行检查吗?如果它已连接,则SSL证书是阻止此连接的原因。在这种情况下,您需要确保5671端口应该接受SSL证书。如果没有启用SSL证书,则前两点可能是原因。
  • 你能用这个命令echo | openssl s_client -connect <hostname>:<port> | head试试吗

有关详细信息,请参阅此RabbitMQ troubleshooting doc

相关问题