Файл сетевой политики, разрешающий трафик c только с определенного IP-адреса - PullRequest
0 голосов
/ 16 апреля 2020

Как записать файлы политики сети, чтобы разрешить traffi c доступ к приложению только с нескольких IP-адресов (например, 127.18.12.1, 127.19.12.3). Я сослался на файл https://github.com/ahmetb/kubernetes-network-policy-recipes, но не нашел удовлетворительного ответа. Было бы здорово, если бы кто-нибудь помог мне написать файл политики сети. Я также передал официальный документ Kubernetes для сетевой политики.

Мой пример кода

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
    name: test-network-policy
    namespace: example
spec:
    podSelector:
      matchLabels:
        app: couchdb
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 127.18.12.1/16
    ports:
    - protocol: TCP
      port: 8080

1 Ответ

0 голосов
/ 16 апреля 2020

Если вы не хотите редактировать сетевую политику и ограничивать трафик c от входа для определенного домена, вы можете редактировать вход с пометкой:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: restricted-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/from-to-www-redirect: "True"
    nginx.ingress.kubernetes.io/force-ssl-redirect: "True"
    nginx.ingress.kubernetes.io/whitelist-source-range: "00.0.0.0, 142.12.85.524"

для политики сети

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

выход: - to: - ipBlock: cidr: 10.0.0.0/24 порты: - протокол: порт TCP: 5978

...