Я настраиваю миникуб, используя VirtualBox в качестве драйвера виртуальной машины, используя адаптер NAT и адаптер только для хоста . После создания виртуальной машины я запускаю несколько модулей, одним из которых является Kafka (очередь сообщений). У меня проблемы с правильным использованием Kafka, потому что виртуальная машина создает 2 сетевых интерфейса eth0
, которые указывают на 10.0.2.15
и eth1
, которые указывают на 192.168.99.100
, то есть IP, с которым настроен адаптер только для хоста.
Я запускаю это на Mac, поэтому я попытался использовать HyperKit, который, кажется, работает по-другому. Итак, при использовании HyperKit я получаю один интерфейс eth0
, который указывает на 192.168.99.100, и все работает просто отлично.
Почему VirtualBox создает 2 интерфейса, то есть eth0
и eth1
?
| Host | | VM |
|--------------------------| |-----------------------|
| vboxnet0 (192.168.99.100)| | eth0 (10.0.2.15) | <--- why is this created?
| ... | | eth1 (192.168.99.100) |
В качестве дополнительного примечания, Кафка использует PLAINTEXT://:9092
в настройках слушателей, что заставляет его запускать сервер, используя eth0
и в результате 10.0.2.15
. Этот IP позже объявляется любому потребителю, подключенному к нему. Этот IP, кажется, доступен только внутри виртуальной машины, что делает невозможным соединение извне, например, гостья. Если быть точным, потребитель подключается к Kafka, затем Kafka отправляет объявленных слушателей, то есть 10.0.2.15
, и затем не может отправлять сообщения, потому что пытается подключиться к 10.0.2.15
.