Сетевая политика в Kubernetes для доступа через Ingress только - PullRequest
0 голосов
/ 30 октября 2018

Я новичок в Кубернетесе. У нас есть три пространства имен (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.

Есть ли способ, как этого добиться?

(Кроме того, добавление меток в пространства имен не вариант)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...