Команда kubectl describe service the-load-balancer
возвращает:
Name: the-load-balancer
Namespace: default
Labels: app=the-app
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"the-app"},"name":"the-load-balancer","namespac...
Selector: app=the-app
Type: LoadBalancer
IP: 10.100.129.251
LoadBalancer Ingress: 1234567-1234567890.us-west-2.elb.amazonaws.com
Port: the-load-balancer 15672/TCP
TargetPort: 15672/TCP
NodePort: the-load-balancer 30080/TCP
Endpoints: 172.31.77.44:15672
Session Affinity: None
External Traffic Policy: Cluster
Сервер RabbitMQ, работающий в другом контейнере за балансировщиком нагрузки, доступен из другого контейнера через Endpoints 172.31.77.44:15672
балансировщика нагрузки.
Но ему не удается подключиться, используя the-load-balancer
имя хоста или локальный 10.100.129.251
IP-адрес.
Что нужно сделать, чтобы сделать службу RabbitMQ доступной через имя хоста балансировщика нагрузки the-load-balancer
?
Отредактировано позже:
Запуск простого теста Python из другого контейнера:
import socket
print(socket.gethostbyname('the-load-balancer'))
возвращает локальный IP-адрес балансировщика нагрузки 10.100.129.251
.
Подключение к RabbitMQ с использованием «172.31.18.32» работает хорошо:
import pika
credentials = pika.PlainCredentials('guest', 'guest')
parameters = pika.ConnectionParameters(host='172.31.18.32', port=5672, credentials=credentials)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
print('...channel: %s' % channel)
Но после замены host='172.31.18.32'
на host='the-load-balancer'
или host='10.100.129.251'
клиент не может подключиться.