Kubernetes pod to pod кластерная сетевая политика - PullRequest
0 голосов
/ 04 марта 2020

С помощью сетевой политики k8s или ситца я могу использовать эти инструменты только для кластерных сетевых политик. У меня уже есть сетевые правила для внешних политик кластера.

Например, если я применяю это правило ситца:

apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
  name: allow-ingress-from-b
  namespace: app
spec:
  selector: app == 'a'
  ingress:
  - action: Allow
    protocol: TCP
    source:
      selector: app == 'b'
    destination:
      ports:
        - 80

В этом примере я разрешаю трафик c, поступающий из приложения B в приложение A. Но это запретит любой другой входящий трафик c собирается А. Можно ли применять это правило только от стручка к стручку?

1 Ответ

2 голосов
/ 04 марта 2020

Вы должны прочитать Ресурс NetworkPolicy , он предоставляет пример NetworkPolicy с Ingress и Egress.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - ipBlock:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    - namespaceSelector:
        matchLabels:
          project: myproject
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

Объяснение следующее:

  1. выделяет модули «role = db» в пространстве имен «по умолчанию» для входного и выходного трафика c (если они еще не были изолированы)
  2. (правила входа ) разрешает подключения ко всем модулям в пространстве имен «по умолчанию» с меткой «role = db» на TCP-порту 6379 из:

    • любого модуля в пространстве имен «по умолчанию» с меткой «role = frontend» ”
    • любой модуль в пространстве имен с меткой“ project = myproject ”
    • IP-адреса в диапазонах 172.17.0.0–172.17.0.255 и 172.17.2.0–172.17.255.255 (ie все 172.17.0.0/16, за исключением 172.17.1.0/24)
  3. (правила выхода), разрешают подключения из любого модуля в пространстве имен «по умолчанию» с меткой «role = db» CIDR 10.0.0.0/24 на TCP-порт 5978

См. * 102 9 * Объявление сетевой политики пошаговое руководство для дальнейших примеров.

Таким образом, если вы используете podSelector, вы сможете выбрать модули для этой сетевой политики для применения.

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