Проблема:
Я пытаюсь разрешить моему 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: []