Aide-mémoire CKAD

exemple YAML NetworkPolicy k8s

Une NetworkPolicy est deny-by-default pour les pods qu’elle sélectionne, pour les policyTypes listés.

Un masque d’or reste sur la colonne pendant que les gens passent derrière la porte. Un masque d’or reste sur la colonne pendant que les gens passent derrière la porte.
Refuser tout l’ingress
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-ingress
  namespace: app
spec:
  podSelector: {}
  policyTypes:
    - Ingress
Autoriser un Pod
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend
  namespace: app
spec:
  podSelector:
    matchLabels:
      app: api
  policyTypes:
    - Ingress
  ingress:
    - from:
        - podSelector:
            matchLabels:
              app: frontend
      ports:
        - protocol: TCP
          port: 8080
Autoriser le DNS
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-dns
  namespace: app
spec:
  podSelector: {}
  policyTypes:
    - Egress
  egress:
    - to:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: kube-system
          podSelector:
            matchLabels:
              k8s-app: kube-dns
      ports:
        - protocol: UDP
          port: 53

Champs

podSelector
{} = tous les Pods de ce namespace. C’est à qui s’applique la policy.
policyTypes
Ne lister que ce que vous visez. Egress ici + seulement DNS = le reste de l’egress est coupé.
from
Les pairs sont en OU. podSelector + namespaceSelector sur le même pair sont en ET.
ingress
Pas d’ingress: + policyTypes Ingress = tout l’entrant est refusé pour les Pods ciblés.

Pièges

  • podSelector: {} = tous les Pods de ce namespace. ingress: [] vide refuse tout l’ingress.
  • Les pairs dans from: sont en OU. podSelector et namespaceSelector sur le même pair sont en ET.
  • Lister Egress et n’autoriser que le DNS coupe tout le reste. Ne mettre dans policyTypes que ce que vous visez.

Doc officielle Network Policies

S’entraîner sur un cluster réel →