Противоречивые сетевые политики в kubernetes
Предположим, у меня есть 2 сетевые политики для узлов, соответствующих меткам "приложение = база данных". Предположим, что:
- Первая политика имеет правила, которые блокируют весь входящий трафик.
- Вторая политика имеет правило, разрешающее входящий трафик через порт 5660.
Хотя это простой пример, как kubernetes решает, какое правило победит? Как в этом случае можно управлять в более сложных сценариях с несколькими перекрывающимися правилами, которые могут охватывать похожие блоки? Например: можем ли мы определить приоритеты в политике сети?
Благодарю.
2 ответа
Сетевые политики Kubernetes прямо сейчас не позволяют запрещать политики. Есть только разрешить политики. Вы в основном собираете все разрешенные политики для модуля, чтобы получить разрешенные соединения.
При наличии одной или нескольких сетевых политик в модуле будут разрешены все соединения, разрешенные хотя бы одной из сетевых политик.
Так как же работает запрет по умолчанию? Это просто говорит о том, что разрешенных соединений нет.
Более подробное объяснение доступно здесь.
На самом деле это зависит от того, как ваш плагин сетевой политики реализует его. В настоящее время мы также не можем определить приоритеты. Если у вас действительно есть противоречивое правило, то вы допустили ошибку. Вы должны попытаться применить политику без противоречивых правил.