как забанить сеть в контейнере k8s? - PullRequest
0 голосов
/ 24 августа 2018

как забанить сеть в контейнере k8s?

Я использовал k8s для исполнения стороннего кода, и он может быть небезопасным.

Поэтому я использую два контейнера (A и B) в одном модуле, A, чтобы получить код и передать в контейнер B, B, чтобы выполнить его.

Чтобы защитить нашу сеть, я бы хотел отключить сеть Б. Но я не нашел никакой методической работы.

Методы, которые я пробовал:

  1. ifconfig eth0 down, ifdown eth0

  2. iptables -P DROP ВХОДА, iptables -P DROP ВЫХОДА

Есть ли другие способы?

UPDATE: наконец, я использую iptable, чтобы отключить сеть пользователя, а затем переключиться на пользователя в контейнере B, чтобы выполнить код.

Примечание. Поскольку сетевое пространство имен двух контейнеров одинаково, в двух контейнерах вступят в силу правила iptable.

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

https://cilium.io/ Проверьте этот проект, он позволяет вам делать то, что вы упомянули.Он позволяет вам определять политики прикладного уровня и сетевого уровня на основе идентификатора контейнера / модуля.Демо, которое находится на их странице, делает именно то, что вы пытаетесь сделать.

0 голосов
/ 24 августа 2018

Лучше не трогать правила Iptable, которые могут вызвать проблемы с сетевым подключением в K8s.Попробуйте Сетевая политика в K8s, чтобы изолировать модуль, что-то вроде отключения сети для модулей.Это похоже на отключение сети для контейнера в докере

ОБНОВЛЕНИЕ

Также я понял, что модуль содержит 2 контейнера (A & B).Я думаю, что невозможно отключить сеть только для контейнера B в этом модуле.

...