Introduction
Cilium est une solution réseau et de sécurité pour Kubernetes basée sur eBPF, offrant une visibilité approfondie et des politiques réseau dynamiques. En injectant du code eBPF directement dans le noyau Linux, Cilium permet une supervision, un filtrage et une gestion de la sécurité à haute performance.
Prérequis
- Kubernetes (>=1.19)
- Kernel Linux >=4.9 avec support eBPF
kubectl
ethelm
- Permissions cluster-admin pour l’installation
Installation de Cilium
1. Ajouter le repository Helm
helm repo add cilium https://helm.cilium.io/
helm repo update
2. Installer Cilium avec eBPF
helm install cilium cilium/cilium --version 1.12.0 --namespace kube-system --set global.containerRuntime.integration=containerd --set global.flannel.enabled=false --set global.ebpf.enabled=true
Supervision réseau
- Hubble : visualisation temps réel des flux réseau
helm install hubble cilium/hubble --namespace kube-system
- Accès UI :
kubectl port-forward -n kube-system svc/hubble-ui 12000:80
Politique de sécurité
Exemple de CiliumNetworkPolicy
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: allow-http
spec:
endpointSelector:
matchLabels:
app: frontend
ingress:
- fromEndpoints:
- matchLabels:
app: backend
toPorts:
- ports:
- port: "80"
protocol: TCP
kubectl apply -f cnp-allow-http.yaml
Avantages
- Filtrage et métriques in-kernel à faible latence
- Visibilité avancée via Hubble (métriques, traces…)
- Politiques réseau dynamiques et contextuelles
- Évolutivité pour de grands clusters
Bonnes pratiques
- Activer Hubble et Hubble UI pour un monitoring centralisé
- Segmenter les pods avec CiliumNetworkPolicy
- Utiliser TLS mTLS Ingress/Egress
- Mettre à jour régulièrement Cilium pour les optimisations eBPF
- Documenter les policies et workflows réseau
Conclusion
En intégrant Cilium et eBPF, vous bénéficiez d’une supervision réseau profonde, de politiques de sécurité performantes et d’une gestion simplifiée, garantissant la résilience et la protection de vos applications Kubernetes.