Docker Ошибка SSL Kafka при обмене данными с ingress-sbox - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь настроить защищенную SSL сеть Kafka на трех узлах, используя образ Bitnami Docker. У меня это работает на одном трехузловом кластере, но у меня проблемы с запуском этого на втором трехузловом кластере. Когда я пытаюсь запустить первый узел Kafka, появляется сообщение об ошибке «Ошибка аутентификации с /10.255.0.2 (сбой подтверждения SSL)». Я подозреваю, что это ошибка сертификата. Однако IP-адрес 10.255.0.2 назначен контейнеру ingress-sbox, который кажется внутренним для Docker. Итак, почему мои серверы Kafka пытаются создать SSL-соединение с этим контейнером в одной среде, но не в другой? Как мне получить дополнительную информацию об этой ошибке? Кроме того, как мне либо остановить это соединение, либо настроить параметры SSL, чтобы соединение было выполнено успешно? Вся помощь с благодарностью получена!

*** EDIT ***

Итак, теперь я обнаружил разницу между двумя кластерами. Я перезагрузил все три сервера в отказавшем кластере, и теперь один из них работает, так как я не получаю сообщений об ошибках в файле журнала и могу запрашивать темы с этого сервера. Два других сервера по-прежнему генерируют сообщения об ошибке «Ошибка установления связи SSL», и с ними невозможно связаться. Эта разница между работающим и отказавшим кластерами проявляется, когда я запускаю команду «iptables -L» на каждом кластере, в частности с записью DOCKER -INGRESS.

На рабочем кластере я получаю

Chain DOCKER-INGRESS (1 reference)
target  prot opt source     destination
ACCEPT  tcp  --  anywhere   anywhere    tcp dpt:9097
ACCEPT  tcp  --  anywhere   anywhere    state RELATED,ESTABLISHED tcp spt:9097
ACCEPT  tcp  --  anywhere   anywhere    tcp dpt:9095
ACCEPT  tcp  --  anywhere   anywhere    state RELATED,ESTABLISHED tcp spt:9095
ACCEPT  tcp  --  anywhere   anywhere    tcp dpt:copycat
ACCEPT  tcp  --  anywhere   anywhere    state RELATED,ESTABLISHED tcp spt:copycat
RETURN  all  --  anywhere   anywhere

На отказавшем кластере я получаю

Chain DOCKER-INGRESS (1 reference)
target  prot opt source     destination
ACCEPT  tcp  --  anywhere   anywhere    tcp dpt:9097
ACCEPT  tcp  --  anywhere   anywhere    state RELATED,ESTABLISHED tcp spt:9097
ACCEPT  tcp  --  anywhere   anywhere    tcp dpt:9095
ACCEPT  tcp  --  anywhere   anywhere    state RELATED,ESTABLISHED tcp spt:9095
ACCEPT  tcp  --  anywhere   anywhere    tcp dpt:copycat
ACCEPT  tcp  --  anywhere   anywhere    state RELATED,ESTABLISHED tcp spt:copycat
ACCEPT  tcp  --  anywhere   anywhere    tcp dpt:eforward
ACCEPT  tcp  --  anywhere   anywhere    state RELATED,ESTABLISHED tcp spt:eforward
ACCEPT  tcp  --  anywhere   anywhere    tcp dpt:cgn-config
ACCEPT  tcp  --  anywhere   anywhere    state RELATED,ESTABLISHED tcp spt:cgn-config
ACCEPT  tcp  --  anywhere   anywhere    tcp dpt:cgn-stat
ACCEPT  tcp  --  anywhere   anywhere    state RELATED,ESTABLISHED tcp spt:cgn-stat
ACCEPT  tcp  --  anywhere   anywhere    tcp dpt:onbase-dds
ACCEPT  tcp  --  anywhere   anywhere    state RELATED,ESTABLISHED tcp spt:onbase-dds
ACCEPT  tcp  --  anywhere   anywhere    tcp dpt:nvd
ACCEPT  tcp  --  anywhere   anywhere    state RELATED,ESTABLISHED tcp spt:nvd
RETURN  all  --  anywhere   anywhere

Три порта, которые доступны в каждом кластере: 9093, 9095 и 9097. Раздел DOCKER -INGRESS исчезает, когда я останавливаю Docker стек, ie он присутствует только тогда, когда стек запущен.

Я понятия не имею, как возникают эти различия, или что они означают, или если они актуальны, и если да, то как их исправить - как и прежде, любая помощь или совет будут с благодарностью приняты.

*** EDIT # 2 ***

Дополнительные записи в цепочке DOCKER -INGRESS относятся к портам Zookeeper (2181 -2185), которые не были показаны в работающем кластере, но находятся в отказавшем. Похоже, что IPTABLES заменяет «известные» порты своими именами, например, COPYCAT - это порт 9093, а EFORWARD - это порт 2181, иначе я бы распознал эти порты. Ну что ж, вернемся к чертежной доске .....

...