Разрешить трафик, в котором метка от-pod равна метке--pod - PullRequest
0 голосов
/ 19 января 2019

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

Скажем, есть:

Pod A:
 labels:
  meshId="d5ea1b48"

и

Pod B:
 labels:
  meshId="d5ea1b48"

и более коробочек с одинаковой маркировкой meshId=d5ea1b48.Сетка представляет собой ячеистую сеть, в которой просто всем включенным модулям разрешено иметь трафик на один порт.

Моя цель интерпретируется в yaml:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: example
spec:
  podSelector:
    matchLabels:
      meshId: %meshId of from-pod%
  ingress:
  - ports:
    - port 1234
    - protocol: TCP
  - from:
      - podSelector:
          matchLabels:
            meshId: %meshId of to-pod%

Так что, если я не ошибаюсь, эта конфигурацияговорит: я хочу запретить входящий трафик через порт 1234 для тех, у кого нет того же meshId.

Есть ли способ создать kubernetes NetworkPolicy один раз для всех возможных meshId с?Как бы выглядело такое решение в yaml?

Я не хочу создавать новую NetworkPolicy для каждого нового meshId, потому что их будет тонна, и я также думаю, что это повредит производительности кластера.сеть, если существует более 50 000 сетевых политик.

1 Ответ

0 голосов
/ 20 января 2019

Невозможно обобщить селекторы меток так, как вы это выдвинули.Обратите внимание, что сетевые политики предназначены для усиления базы, так что только истинный трафик может входить и выходить.

Я также хотел бы указать вам на тот факт, что вам даже в конечном итоге придется воспользоваться дополнительными политиками 50000.Это означает, что у вас плохая стратегия выбора для стручков.Думайте об изменении этого, а не наоборот.Вы почти у цели!

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1    
metadata:
 name: example
spec:
 podSelector:
  matchLabels:
   meshId: value1
 ingress:
 - ports:
  - port 1234
  - protocol: TCP
 - from:
  - podSelector:
      matchLabels:
        meshId: value1
...