TGViewer
Сочный DevOps Сочный DevOps @andtree_sec · 420 subscribers
Post #181 179
NetworkPolicy на примере проекта shuffle

Сама политика выглядит так:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: shuffle
namespace: shuffle
spec:
podSelector: {} # apply to all Pod's
policyTypes:
- Ingress
- Egress

ingress:
# Allow ingress traffic in namespace
- from:
- podSelector: {}
# Allow incoming ingress-nginx namespace traffic
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: ingress-nginx
ports:
- protocol: TCP
port: 80
- protocol: TCP
port: 443

egress:
# Allow egress traffic in namespace
- to:
- podSelector: {}
# Allow DNS traffic to kube-system ns
- to:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
ports:
- protocol: UDP
port: 53
- protocol: TCP
port: 53
# Allow nodelocaldns traffic
- to:
- ipBlock:
cidr: 169.254.25.10/32
ports:
- protocol: UDP
port: 53
- protocol: TCP
port: 53
# Allow traffic to port
- to:
- ipBlock:
cidr: 0.0.0.0/0
ports:
- protocol: TCP
port: 9200
- protocol: TCP
port: 80
- protocol: TCP
port: 443
- protocol: TCP
port: 8200
- to:
- ipBlock:
cidr: 10.233.0.1/32
ports:
- protocol: TCP
port: 443


Она применяется ко всем подам в namespace shuffle. Правилами входящего трафика разрешаем общение между подами в рамках ns:
- from:
- podSelector: {}


А также входящий трафик от подов в ns ingress-nginx.
Исходящий трафик (egress) - также все поды в рамках ns, доступ до kube-system. Там у нас расположены поды coreDNS и nodelocaldns. Но до nodelocaldns доступа все равно не будет, поды будут к нему ходить через IP (в моем случае 169.254.25.10), поэтому ниже указываем и его:
- to:
- ipBlock:
cidr: 169.254.25.10/32
ports:
- protocol: UDP
port: 53
- protocol: TCP
port: 53


Разрешаем ходить в "мир" по портам 9200 (elastic), 80, 443, 8200. Последний это волт. Первые для интернета, который данному приложению нужен. Также shuffle нужен доступ к kubernetes service, для этого секция:
- to:
- ipBlock:
cidr: 10.233.0.1/32
ports:
- protocol: TCP
port: 443


#kubernetes
  • ❤ 1
More from @andtree_sec
  1. Sep 7, 2026Давненько не было сообщений. Скорее всего в будущем они уйдут в telegraf, который я еще не…
  2. Jul 6, 2026Последнее время на работе часто приходится работать с apache flink и даже что-то писать на…
  3. Jun 4, 2026Немножко про молекула тесты... У нас принято использовать в переменных lookup плагин для д…
  4. May 20, 2026Очередной небольшой проект. Веб-приложение, которое агрегирует через стандартный механиз g…
  5. May 15, 2026Включаем профилирование в ansible Профилирование, это вывод даты, времени запуска и итогов…
  6. Apr 17, 2026Так выглядит общий dashbord работы с инцидентами.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →