Операционная система: Fedora Linux
➜ ~ uname -r -v
5.8.11-200.fc32.x86_64 #1 SMP Wed Sep 23 13:51:28 UTC 2020
Есть простой docker-compose файл - два образа: один zookeeper, второй kafka.
version: '3.5'
services:
zookeeper:
image: confluentinc/cp-zookeeper:5.2.3
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
kafka:
image: confluentinc/cp-kafka:5.2.3
depends_on:
- zookeeper
ports:
- 9092:9092
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://kafka:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
Если сразу после запуска запустить /bin/bash внутри kafka котнейнера, то curl на проблемный порт будет давать ошибку "no route to host"
Средство лечения:
sudo firewall-cmd --permanent --zone=trusted '--add-interface=br-+'
sudo firewall-cmd --reload
sudo systemctl restart docker
Добавляем в доверенную зону все интерфейсы бриджей докера - по wildcard.
Данная проблема не наблюдается на ubuntu. Она присуща rhel-based системам.