Kubernetes Network Policy Egress разрешает только определенный IP-адрес и порт.

Я использую Kubernetes 1.9.6 с Weave Net 2.4.0. Я пытаюсь заблокировать доступ к внутреннему DNS-серверу Kubernetes и определенному порту на другом хосте. Кажется, я не могу найти подходящий формат для выхода.

Я знаю, что приведенная ниже политика недопустима, но отражает то, что я хочу делать. Как мне написать сетевую политику для поддержки этого?

---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
    name: test-network-policy
    namespace: dev
spec:
    podSelector:
        matchLabels:
            app: plem-network-policy
policyTypes:
- Egress
egress:
- to:
    - ipBlock:
        cidr: 10.3.0.10/32
        ports:
        - protocol: TCP
        port: 53
        - protocol: UDP
        port: 53
    - ipBlock:
        cidr: 10.49.100.37/32
        ports:
        - protocol: TCP
        port: 8200

person Michael Plemmons    schedule 14.08.2018    source источник


Ответы (1)


Я не уделял достаточно внимания множественным блокам для cidr и портов. Это то, что я искал.

---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
    name: test-network-policy
    namespace: dev
spec:
    podSelector:
      matchLabels:
        app: plem-network-policy
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 10.2.0.0/16
    - ipBlock:
        cidr: 10.3.0.10/32
    ports:
    - protocol: UDP
      port: 53
    - protocol: TCP
      port: 53
  - to:
    - ipBlock:
        cidr: 10.49.100.37/32
    - ipBlock:
        cidr: 10.49.100.137/32
    - ipBlock:
        cidr: 10.49.100.85/32
    ports:
    - protocol: TCP
      port: 8200
  - to:
    - ipBlock:
        cidr: 10.29.30.56/32
    ports:
    - protocol: TCP
      port: 5439
person Michael Plemmons    schedule 14.08.2018