@emashev

Как разрешить доступ к NodePort через network policy?

Приветствую, есть k8s поднятый на baremetal с внешними балансировщиками.
Терминация ssl на них проходит, а приложения выходят в свет, через NodePort на VIP адресе.
Понадобилось ограничить трафик между namespace и запретить некоторым подам доступ в интернет.

Если я применяю данную политику, namespace изолируются, но отваливается доступ к NodePort.
Все политики применяются к конкретным namespace, по умолчанию все разрешено должно быть.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-from-other-namespaces
spec:
  podSelector:
    matchLabels:
  ingress:
  - from:
    - podSelector: {}

Если в политику добавить
ports:
- port: 8080


порт 8080, это внутренний порт приложения, то доступ к NodePort открыватся, но для всех namespace с этой же политикой.

Политика ниже, как раз разрешает доступ в интернет только для подов с соответствующей меткой.
Но вот соединить все это вместе - не получается.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
 name: deny-from-public-net
spec:
 podSelector: {}
 ingress:
 - from:
   - ipBlock:
       cidr: 0.0.0.0/0
 egress:
 - to:
   - ipBlock:
       cidr: 192.168.0.0/16
   - ipBlock:
       cidr: 172.16.0.0/12
   - ipBlock:
       cidr: 10.0.0.0/8

---

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-public-network-for-labels
spec:
  podSelector:
    matchLabels:
      public-network: "true"
  ingress:
  - from:
    - ipBlock:
        cidr: 0.0.0.0/0
  egress:
  - to:
    - ipBlock:
        cidr: 0.0.0.0/0
  • Вопрос задан
  • 17 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 200 000 ₽
Sportmaster Lab Москва
от 150 000 до 300 000 ₽
STM Labs Нижний Новгород
от 100 000 ₽
27 янв. 2021, в 00:37
11111 руб./за проект
26 янв. 2021, в 23:30
3000 руб./за проект
26 янв. 2021, в 23:07
1000 руб./за проект