Назад | Перейти на главную страницу

Имеет ли значение порядок сетевых политик в кубернетах?

У меня есть кластер на Google Kubernetes Engine, в нем включены сетевые политики с помощью Calico.
До сих пор я написал 12 сетевых политик в виде файлов YAML.
Одна вещь, которую я не могу понять, - это то, что порядок, в котором создаются эти сетевые политики, имеет значение.
Например, допустим, у меня есть эти две политики:
Pol # 1 - Запретить все входящие соединения

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

Pol # 2 - Разрешить доступ к базе данных серверной части:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-db-to-be-accessed-by-backend
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: mysql
      release: production
  policyTypes:
  - Ingress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: backend
          release: production
    ports:
    - protocol: TCP
      port: 3306

Получу ли я разные результаты, если применю Pol # 1, затем Pol # 2, по сравнению с применением Pol # 2 сначала, а затем Pol # 1?

Нет, не имеет значения, в каком порядке вы применяете свои правила. В вашем случае правило Pol # 2 все равно будет работать.

Еще один пример NetworkPolicy: предположим, что у вас есть 2 политики: 1 правило для запрета всего трафика и 2 для разрешения трафика для выбранного приложения. Какой бы порядок правил вы ни выбрали, входящий трафик будет разрешен для модулей с меткой app: web в поле зрения namespace: default

deny-all.yaml:

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

применить-nginx-app.yaml:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: web-allow-all
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: web
  ingress:
  - {}

Кстати, вы можете найти множество примеров сетевых политик с пошаговым объяснением. Вот.

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