Часто ли Azure IoT Edge сбрасывает сетевые контейнеры? - PullRequest
0 голосов
/ 03 октября 2019

У меня есть модуль, развернутый на Raspberry Pi, на котором работает Azure IoT Edge. Модуль представляет собой приложение Node-RED, которое хочет взаимодействовать с gpiod. Модуль (конечно) является контейнерным приложением, и на хосте запущено gpiod.

Все работает как «по умолчанию», поэтому Модуль работает как --network="bridge", поэтому, чтобы выяснить, чтоIP, который я должен использовать, чтобы получить от Модуля (контейнера) к хосту, я сделал:

sudo docker exec hub-nodered route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.18.0.1      0.0.0.0         UG    0      0        0 eth0
172.18.0.0      *               255.255.0.0     U     0      0        0 eth0

И используя 172.18.0.1:8888, все работает!

За исключением примерно через 35 секунд после того, как я отправил 1 или 0 на вывод GPIO, у меня появляется , чтобы потерять доступ к сети хоста, и Node-RED сообщает ETIMEDOUT 172.17.42.1:8888.

Я понятия не имею, откуда 172.17.42.1 приходит из подсети docker0:

$ sudo ip addr show docker0
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:94:f2:b2:ca brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet 169.254.251.36/16 brd 169.254.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::3bea:3383:36b7:fbd7/64 scope link 
       valid_lft forever preferred_lft forever

Если я ничего не изменю и продолжу и отправлю еще один 1 или 0 до 172.18.0.1:8888, это все еще работает! Но через некоторое время у меня снова появится возможность потерять доступ к 172.18.0.1 и увидеть ошибку ETIMEDOUT 172.17.42.1:8888.

Использование docker0 172.17.0.1 делает точно то же самое.

host.docker.internal еще не работает в Linux .

Периодически ли Azure IoT Edge сбрасывает сеть системы, так что я ненадолго теряю доступ к IP-адресу хоста?

Есть ли какой-то другой способ, которым я должен выйти из моего модуля на хост?

...