Я настраиваю гибридный кластер (master-centos и 2 рабочих узла-окна 2019) с контейнером в качестве среды выполнения. Я не могу использовать какие-либо CNI, такие как ситцевая и плетеная, поскольку им нужен докер в качестве среды выполнения. Я могу использовать Flannel, но он плохо поддерживает сетевые политики. Есть ли способ предотвратить взаимодействие модулей между пространствами имен в Kubernetes БЕЗ использования сетевой политики?
Есть ли способ запретить взаимодействие модулей между пространствами имен в Kubernetes без использования сетевой политики
Ответы (2)
Есть ли способ предотвратить взаимодействие модулей между пространствами имен в Kubernetes БЕЗ использования сетевой политики?
Сетевые политики были созданы именно для этой цели, и согласно документам вам нужен CNI, который их поддерживает. В противном случае они будут проигнорированы.
Сетевые политики реализуются сетевым плагином. Чтобы использовать сетевые политики, вы должны использовать сетевое решение, которое поддерживает NetworkPolicy. Создание ресурса NetworkPolicy без контроллера, который его реализует, не будет иметь никакого эффекта.
Если ваш единственный вариант - использовать фланель для сети, вы можете установить сетевую политику Calico для защиты связи кластера. Итак, в основном вы устанавливаете ситцево для политики и фланель для сети, обычно известной как Canal. Дополнительную информацию можно найти в документации по calico.
Вот также хороший ответ, как настроить calico с containerd, который может оказаться полезным в вашем случае.
Поскольку Flannel является сетевым решением только уровня L2, поэтому нет поддержки NetworkPolicy (L3 / L4), вы можете реализовать безопасность на уровне обслуживания (любая форма авторизации, такая как пользователь / пароль, сертификат, saml, oauth и т. Д.).
Но без NetworkPolicy можно потерять брандмауэр, как безопасность, что может быть не тем, что вам нужно.