2015-11-10 2 views
1

Я хочу получить доступ к некоторым внешним точкам APA Saas в контейнере. Я использую фланель как сеть кубернетов. Но когда я пытаюсь выполнить ping внешний IP-адрес в пакете, пакет будет отправлен без маскировки. Так пинг не может быть успешнымКубернетес внутреннее внешнее сообщение напрямую?

И я нашел это: https://docs.openshift.org/latest/dev_guide/integrating_external_services.html После создания службы без селектора и прикрепить соответствующую конечную точку, я мог бы получить внешнюю службу в стручках.

Я мог бы также добавить в Iptables маскарад на 10.254.0.0/16 на узел, чтобы включить прямой доступ внешней конечной точки следующим образом:

 iptables -t nat -A -A POSTROUTING -s 10.254.61.0/24 ! -d 10.254.0.0/16 -j MASQUERADE

Но мы не могли просто получить доступ к внешней Saas конечной точки напрямую?

Есть ли какая-либо конфигурация на кубернетах или фланеле (или другом сетевом плагине?), Которые могут напрямую обеспечивать внутреннюю связь?

Благодаря

+0

В kubernetes документов о сети, я нашел это [ссылка] (http://kubernetes.io/v1.0/docs/admin/networking.html#google-compute-engine-gce). Означает ли это, что маскарад iptables - это правильный способ сделать это? – jim

ответ

0

kubelet обеспечит IPTables POSTROUTING правило создается, если сказать ему [1], однако я подозреваю, что вы работаете с --configure-cbr0 = ложь, потому что вы хотите, чтобы установить фланель сетей. Я считаю, что вы можете сказать, фланель, чтобы установить правило для вас:

flanneld --help
...
-ip-MASQ Настройки IP правила маскарада для трафика, адресованного вне наложенной сети

[1] https://github.com/kubernetes/kubernetes/blob/b9cfab87e33ea649bdd13a1bd243c502d76e5d22/pkg/kubelet/container_bridge.go#L122

+0

Спасибо, именно то, что я хочу. Flanneld теперь может установить ip-masq согласно вашей помощи – jim

Смежные вопросы