🎯 What It Is

Advanced NetworkPolicy rules let you:

βœ… Essential for multi-team clusters, hybrid cloud, or compliance (e.g., β€œonly finance namespace can access payroll DB”).

πŸ’‘ Real-World Analogy

Like a corporate network with VLANs:


πŸ§ͺ Example 1: Allow Traffic Only from frontend Namespace

Assume:

Step 1: Label Namespaces

kubectl label ns frontend team=web
kubectl label ns prod team=web

Step 2: Create NetworkPolicy in prod

# allow-frontend-ns-to-backend.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
meta
  name: allow-frontend-ns
  namespace: prod
spec:
  podSelector:
    matchLabels:
      app: backend
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          team: web        # ← Only namespaces with this label
      podSelector:
        matchLabels:
          app: frontend    # ← And Pods with this label
    ports:
    - port: 80

βœ… Result: Only Pods in namespaces labeled team=web AND with app=frontend can reach backend.


πŸ§ͺ Example 2: Allow Egress to External Package Repo (IP Block)