Я новичок в Кубернетесе. У нас есть три пространства имен (dev, uat, prod).
В наших контейнерах есть сервисы отдыха, которые мы хотим выставить во внешний мир с помощью Ingress (с аутентификацией клиента). Это работает нормально.
Но сейчас мы можем вызвать нашу службу отдыха из других контейнеров в другом пространстве имен, просто используя имя службы K8s. Мы хотим заблокировать такой доступ.
Мы хотим разрешить доступ к модулям только через соответствующий вход k8s. Как мы можем этого добиться?
Я пытался создать две сетевые политики для достижения этой цели, но это не работает ..
полис 1
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: default-deny-all
namespace: ns1
spec:
podSelector: {}
ingress: []
полис 2
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-external
spec:
podSelector:
matchLabels:
tier: backend
ingress:
- from: []
После того, как я применил первую политику, я не могу получить доступ к своей службе отдыха через Ingress.
После того, как я применил вторую политику, служба остальных снова становится доступной из всех контейнеров, просто используя имя службы k8s без прохождения Ingress.
Есть ли способ, как этого добиться?
(Кроме того, добавление меток в пространства имен не вариант)