Противоречивые сетевые политики в kubernetes

Предположим, у меня есть 2 сетевые политики для узлов, соответствующих меткам "приложение = база данных". Предположим, что:

  • Первая политика имеет правила, которые блокируют весь входящий трафик.
  • Вторая политика имеет правило, разрешающее входящий трафик через порт 5660.

Хотя это простой пример, как kubernetes решает, какое правило победит? Как в этом случае можно управлять в более сложных сценариях с несколькими перекрывающимися правилами, которые могут охватывать похожие блоки? Например: можем ли мы определить приоритеты в политике сети?

Благодарю.

2 ответа

Решение

Сетевые политики Kubernetes прямо сейчас не позволяют запрещать политики. Есть только разрешить политики. Вы в основном собираете все разрешенные политики для модуля, чтобы получить разрешенные соединения.

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

Так как же работает запрет по умолчанию? Это просто говорит о том, что разрешенных соединений нет.

Более подробное объяснение доступно здесь.

На самом деле это зависит от того, как ваш плагин сетевой политики реализует его. В настоящее время мы также не можем определить приоритеты. Если у вас действительно есть противоречивое правило, то вы допустили ошибку. Вы должны попытаться применить политику без противоречивых правил.

Другие вопросы по тегам