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

问题描述 投票:0回答:1

我有以下设置:k3s 安装和 istio 作为入口控制器,

我们面临的问题是 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
    
  • 如果我尝试从 k3s pod 外部的机器内部通过 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
    

知道为什么会发生这种情况,尽管我在通过 443 公开的 rabbitmq 服务内部有另一个端口并且它响应良好[这只是为了排除 DNS 问题]

kubernetes rabbitmq istio rancher k3s
1个回答
0
投票

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

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

有关更多信息,请参阅此RabbitMQ 故障排除文档

© www.soinside.com 2019 - 2024. All rights reserved.