Сетевая политика Kubernetes с внешними услугами - PullRequest
1 голос
/ 15 июня 2019

Проблема:

Я пытаюсь разрешить моему API входить в мою внешнюю управляемую базу данных, при этом требуется белый список для всего остального.

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: server-allow-external
spec:
  podSelector:
    matchLabels:
      component: api
  ingress:
    - from:
        - namespaceSelector: {}
        - podSelector:
            matchLabels: frontend
        - ipBlock:
            cidr: 172.17.0.0/16

Я пробовал все виды комбинаций здесь.Политики сетевых плагинов, сопоставление внешней БД с сервисом на основе кластера и т. Д., И мне не повезло.

Примечание. Да, я разрешаю общение в пространстве имен.

Приведенный выше код - это то, куда я прибыл логически, чтобы решить проблему ... но он все еще не работает.У меня также есть балансировщик нагрузки, который находится вне этого, если это может иметь эффект?

Код:

У меня есть внешний интерфейс, который опирается на бэкэнд API (всев пространстве имен по умолчанию).Затем внешняя БД.Я применил политику запрета по умолчанию:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: default-deny-all
  namespace: default
spec:
  podSelector: {}
  ingress: []

Затем я разрешил доступ к веб-интерфейсу из Интернета:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-external
spec:
  podSelector:
    matchLabels:
      component: frontend
  ingress:
    - from: []

1 Ответ

0 голосов
/ 26 июня 2019

Настройте сетевую политику для внешнего сервера. Вы должны исправить раздел, который определяет вход.

Просто добавьте подраздел в matchLabels - component: frontend

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: server-allow-external
spec:
  podSelector:
    matchLabels:
      component: api
  ingress:
    - from:
        - namespaceSelector: {}
        - podSelector:
            matchLabels:
              component: frontend
        - ipBlock:
            cidr: 172.17.0.0/16

Надеюсь, это поможет.

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