Späť na blog
2026-05-26Networking

NetworkPolicy a multi-tenancy

Izoluj namespaces pomocou deklaratívnych network policies.

OpenShift 4 používa ako default CNI OVN-Kubernetes (OpenShift SDN je EOL). OVN-K natívne podporuje štandardné NetworkPolicy objekty, egress firewall, egress IP a AdminNetworkPolicy pre cluster-wide pravidlá.

Základ multi-tenancy je default-deny policy v každom namespace. Vytvor NetworkPolicy so `podSelector: {}` a bez ingress/egress rules – zablokuje všetok traffic. Potom pridávaj explicit allow rules podľa potreby: povoľ ingress z ingress-controllera (pre HTTP traffic), egress do kube-dns a monitoring scraper-a.

Pre prax je užitočný pattern "allow-from-same-namespace". Jedna policy, ktorá povolí komunikáciu iba medzi podmi vo vlastnom namespace, plus explicit allow z produktovej infra (databázy, cache). Namespace label `network.openshift.io/policy-group=ingress` zjednoduší selectors.

AdminNetworkPolicy (ANP) rieši prípady, ktoré NetworkPolicy nevie – napr. cluster-wide default deny, override user policies alebo egress kontrola. ANP má priority (0-999), vyššia priorita vyhráva. Použi ho na vynútenie compliance (nikto nesmie ísť out na 0.0.0.0/0, vždy cez proxy).

EgressFirewall je OpenShift-špecifický. Obmedzuje, kam môžu pody z namespace ísť von. Klasika: povoľ interný DNS, artifact repo a databázy, zakáž zvyšok. Kombinuj s EgressIP, ak potrebuješ, aby traffic z namespace odchádzal cez konkrétnu IP (firewall whitelisty na strane partnera).