Смешанный кластер Riak с экземплярами контейнера докеров и неконтейнером экземпляры

У меня есть кластер riak, который работает на нескольких разбросанных виртуальных машинах. Сейчас я экспериментирую с докером и хочу добавить узлы в кластер, которые работают в контейнерах докеров.

Как мне настроить сетевые компоненты в этом сценарии? Мои контейнеры могут видеть неконтейнерные экземпляры и могут присоединяться к кластеру, но неконтейнерные экземпляры могут ' t инициировать обмен данными с контейнерными экземплярами.

Допустим, у меня есть две виртуальные машины, на которых работает riak с IP-адресами 192.168.1.1 и .2. Мой хост-докер имеет IP-адрес 192.168.1.3. Трем контейнерам riak назначены IP-адреса 172.17.0.1, .2 и .3. Я присоединил каждый экземпляр контейнера к кластеру.

Запуск riak-admin member-status на любом узле показывает что-то вроде этого:

Status   Ring   Pending  Node
------------------------------------------
valid     0.0%    32.8%  'riak@172.17.0.1'
valid     0.0%     0.0%  'riak@172.17.0.2'
valid     0.0%     0.0%  'riak@172.17.0.3'
valid    50.0%    32.8%  'riak@192.168.1.1'
valid    50.0%    32.8%  'riak@192.168.1.2'

Кластер не может сбалансировать себя, потому что виртуальные машины не могут инициировать связывается с контейнерами.

Я знаю, как открывать порты в моем контейнере и публиковать их на хосте докеров, но я не уверен, как затем присоединить контейнерный узел riak к кластеру, используя IP-адрес хостов докеров и опубликовать порт ...

0
задан 2 June 2016 в 17:34
1 ответ

Die Replikation mehrerer Datencenter dient zum Kopieren von Daten zwischen Clustern. Sie hilft wahrscheinlich nicht beim Einrichten Ihres Clusters.

Der Schlüssel öffnet wahrscheinlich alle benötigten Ports include:

tcp/4369 (epmd)
tcp/8098 (riak http)
tcp/8087 (riak protocol buffers)
tcp/8099 (riak handoff)
tcp/x    (riak disterl)

Der Disterl-Port wird standardmäßig aus dem kurzlebigen Portbereich des Betriebssystems ausgewählt. Sie können ihn jedoch mithilfe von erlang.distribution.port_range.minimum und erlang.distribution.port_range.maximum einschränken Einstellungen.

Die Ports 8098 und 8087 werden benötigt, damit Clients die Riak-Instanz im Container erreichen können.

Port 4369 ist für EPMD, den Port-Mapper, mit dem andere Knoten den Disterl-Port des Riak finden können [8066] Port 8099 wird benötigt, damit die Riak-Instanz eine Übergabe von anderen Knoten empfängt.

Der Disterl-Port ist der primäre Kommunikationskanal zwischen Knoten.

4369, 8099 und der Disterl-Port müssen der Reihe nach verfügbar gemacht werden Damit der Cluster funktioniert, werden die beiden anderen nur benötigt, wenn Clientanforderungen direkt die Inst erreichen Asse in den Behältern.

0
ответ дан 5 December 2019 в 10:22

Теги

Похожие вопросы