Мне нужно иметь возможность периодически выставлять мой экземпляр rabbitmq для внешнего мира.
Он работает в DigitalOcean в кластере kuberentes 1.16 с кучей других сервисов. Одним из сервисов является веб-сервер. Балансировщик нагрузки на этом работает просто отлично. Когда я пытаюсь использовать тот же конфиг (очевидно, с разными портами) для моего rabbitmq, я не могу заставить его работать.
Другие сервисы в кластере могут нормально общаться с rabbitmq. Я тоже могу, если я kubectl port-forward service/rabbitmq 5672 15672 15671
и доступ к нему локально.
Если я попытаюсь получить доступ к нему по IP-адресу c, соединение мгновенно разорвется.
$ telnet 64.225.xx.xx 15672
Trying 64.225.xx.xx...
Connected to 64.225.xx.xx.
Escape character is '^]'.
Connection closed by foreign host.
Конфигурация полностью:
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
labels:
db: rabbitmq
spec:
ports:
- port: 15671
targetPort: 15671
name: '15671'
- port: 15672
targetPort: 15672
name: http
protocol: TCP
- port: 5672
targetPort: 5672
name: '5672'
selector:
db: rabbitmq
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq-deployment
labels:
db: rabbitmq
spec:
selector:
matchLabels:
db: rabbitmq
replicas: 1
template:
metadata:
labels:
db: rabbitmq
spec:
containers:
- name: rabbitmq
image: rabbitmq:3-management
ports:
- containerPort: 15671
- containerPort: 15672
- containerPort: 5672
env:
- name: GET_HOSTS_FROM
value: dns
- name: RABBITMQ_DEFAULT_USER
value: "***"
- name: RABBITMQ_DEFAULT_PASS
value: "***"
- name: RABBITMQ_DEFAULT_VHOST
value: "/"