'my kubernetes service not connect to rabbitmq on docker container

I'm developing a simple microservice application using kubernetes. I use skaffold for development and production. And I provide communication between my services with rabbitmq.

When I run my kubernetes services locally (i.e. manually without kubernetes) I can connect to my docker container. But when I run my apps through kubernetes I can't connect to my docker container.

The url I use when I try it manually is: BROKER_URI=amqp://127.0.0.1:15672

As I said above url works manually but not with kubernetes. It would also be illogical for it to work because its url is 127.0.0.1. So I wrote a rabbitmq kubernetes service like below.

The url I use when I try it kubernetes is: amqp:://backend-rabbitmq-srv:5672

// backend-rabbitmq-srv.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: backend-rabbitmq-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: backend-rabbitmq
  template:
    metadata:
      labels:
        app: backend-rabbitmq
    spec:
      containers:
        - name: backend-rabbitmq
          image: rabbitmq:3
---
apiVersion: v1
kind: Service
metadata:
  name: backend-rabbitmq-srv
spec:
  type: NodePort
  selector:
    app: backend-rabbitmq
  ports:
    - name: http
      protocol: TCP
      port: 15672
      targetPort: 15672
      nodePort: 31672
    - name: amqp
      protocol: TCP
      port: 5672
      targetPort: 5672
      nodePort: 30672

However, I am still getting an error as below. Where could I be missing?

The error:

[is-chat] OperationalError: connect ECONNREFUSED                 
10.104.248.71:5672
[is-chat]     at TCPConnectWrap.afterConnect [as oncomplete]     (node:net:1195:16) {
[is-chat]   cause: Error: connect ECONNREFUSED 10.104.248.71:5672
[is-chat]       at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1195:16) {
[is-chat]     errno: -111,
[is-chat]     code: 'ECONNREFUSED',
[is-chat]     syscall: 'connect',
[is-chat]     address: '10.104.248.71',
[is-chat]     port: 5672
[is-chat]   },
[is-chat]   isOperational: true,
[is-chat]   errno: -111,
[is-chat]   code: 'ECONNREFUSED',
[is-chat]   syscall: 'connect',
[is-chat]   address: '10.104.248.71',
[is-chat]   port: 5672
[is-chat] }


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source