Kubernetes - Сетевая политика

Сетевая политика определяет, как модули в одном пространстве имен будут взаимодействовать друг с другом и с конечной точкой сети. Это требуетextensions/v1beta1/networkpoliciesдля включения в конфигурации среды выполнения на сервере API. Его ресурсы используют метки для выбора модулей и определения правил, разрешающих трафик к конкретному модулю, в дополнение к тому, который определен в пространстве имен.

Во-первых, нам нужно настроить политику изоляции пространства имен. Обычно такие сетевые политики требуются для балансировщиков нагрузки.

kind: Namespace
apiVersion: v1
metadata:
   annotations:
      net.beta.kubernetes.io/network-policy: |
      {
         "ingress": 
         {
            "isolation": "DefaultDeny"
         }
      }
$ kubectl annotate ns <namespace> "net.beta.kubernetes.io/network-policy = 
{\"ingress\": {\"isolation\": \"DefaultDeny\"}}"

После создания пространства имен нам нужно создать сетевую политику.

Сетевая политика Yaml

kind: NetworkPolicy
apiVersion: extensions/v1beta1
metadata:
   name: allow-frontend
   namespace: myns
spec:
   podSelector:
      matchLabels:
         role: backend
   ingress:
   - from:
      - podSelector:
         matchLabels:
            role: frontend
   ports:
      - protocol: TCP
         port: 6379