Привет, Это проблема с запросом на функцию.
Я хочу запустить контейнер с оверлеем, поддерживаемым vxLAN. Но для пунктов назначения за пределами оверлея я хочу использовать NAT для контейнера, например, в общедоступном Интернете.
Я вижу три способа сделать это:
Мысли? Это входит в рамки или выходит за рамки фланели?
Второй вариант кажется разумным. Я чувствую, что мы можем положиться на systemd-networkd для настройки этого сетевого маршрута после того, как мы поднимем фланелевый мост.
У @eyakubovich , вероятно, есть мнение по этому поводу.
Уже есть вариант, который делает что-то очень похожее на 2. Если вы запустите flanneld с --ip-masq
, он добавит правило IP Masquerade для трафика, который выходит из контейнеров и направляется в Интернет. Точнее, это трафик, исходящий из оверлейного адресного пространства, но направленный за его пределы.
Опция недокументирована (нужно это исправить), так как я ждал, пока Docker объединит мое добавление --ip-masq
с демоном Docker. Это позволяет запускать демон Docker с --ip-masq=false
и flanneld с --ip-masq
. В противном случае Docker также устанавливает правило маскировки IP для трафика, исходящего из docker0.
Недавно выпущенный Docker 1.3 имеет опцию --ip-masq
.
Спасибо, это работает для нас!
Самый полезный комментарий
Уже есть вариант, который делает что-то очень похожее на 2. Если вы запустите flanneld с
--ip-masq
, он добавит правило IP Masquerade для трафика, который выходит из контейнеров и направляется в Интернет. Точнее, это трафик, исходящий из оверлейного адресного пространства, но направленный за его пределы.Опция недокументирована (нужно это исправить), так как я ждал, пока Docker объединит мое добавление
--ip-masq
с демоном Docker. Это позволяет запускать демон Docker с--ip-masq=false
и flanneld с--ip-masq
. В противном случае Docker также устанавливает правило маскировки IP для трафика, исходящего из docker0.Недавно выпущенный Docker 1.3 имеет опцию
--ip-masq
.