172 похожих чатов

Всем привет, Короткая версия вопроса: Как сделать так, чтобы 2 контейнера

общались между собой через тот же IP адрес и Порт, что и внешний клиент на другой машине.

те из container1 по 10.0.7.2:9042 я попадал в container2 (оба на host1)
и с host2 по 10.0.7.2:9042 я попадал в container2 (host1)

Зачем:

1. поднимаю Cassandra-кластер в докере и столкнулся с проблемой при подключении к ней внешнего клиента (на другой машине и НЕ в докере, эти условия поменять нет возможности)

2. У cassandra есть listen address, по умолчанию это 172.18.0.2 и 172.18.0.3(из compose) BROADCAST_ADDRESS - это тот ip по которому к ноде надо подключаться, те по-умолчанию такой же, на котором она слушается. CASSANDRA_SEEDS - то, к кому подключаемся, тут тоже используем 172 сеть

Чтобы подключиться из вне (см пункт 1) , поднимаем интерфейсы дополнительные (хочется использовать одинаковые порты) и маппим порты 172.18.0.2:9042 -> 10.0.7.2:9042, 172.18.0.3:9042 -> 10.0.7.3:9042

Пока всё кажется логичным, всё работает.

НО, когда подключается клиент к скажем к 10.0.7.2:9042, cassandra ему отвечает что есть ещё нода по адресу 172.18.0.3, клиент пытается туда тоже сходить и у него, разумеется, не получается.

Заставить говорить Cassandra что сосед это не 172.18.0.3, а 10.0.7.3 можно только используя его в конфигурации, но, тогда вообще ничего не заработает, потому что ИЗ node1 по адресу 10.0.7.3 в node2 НЕ попасть.

Как разрешить такой тупик?

1 ответов

19 просмотров
Evgenii-Pavlov Автор вопроса

Я попробовал создать network в докере такой же как подняты интерфейсы, типо поднимаем в линуксе auto eth1:2 iface eth1:2 inet static address 10.0.7.2 netmask 255.255.248.0 и в докере networks: cluster_net: driver: bridge enable_ipv6: false ipam: driver: default config: - subnet: 10.0.7.0/24 node1: image: cassandra:3.10 networks: cluster_net: ipv4_address: 10.0.7.2

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта