Les Network Policies Kubernetes sont des règles qui déterminent la façon dont les pods sont autorisés à communiquer entre eux et avec d’autres points dans le réseau. Cela va donc sans dire que si vous souhaitez gérer efficacement votre cluster Kubernetes, vous devez les connaitre sur le bout des doigts. Dans cet article, nous allons voir ensemble les bases.
Avant de se lancer
Vous souhaitez devenir expert en network policies ? Notre formation Kubernetes vous apprendra tout ce qu’il y a à savoir sur l’outil et vous permettre d’automatiser et de gérer vos environnements d’applications conteneurisées.
L’équipe Ambient IT
Qu’est-ce qu’une politique de réseau Kubernetes?
Pour faire simple, les network policies sont les outils les plus importants pour gérer et sécuriser les applications déployées dans un cluster.
Ce sont elles qui définissent les règles de trafic entrant et sortant pour les applications dans votre cluster Kubernetes. Elles sont mises en œuvre via un plugin CNI (Container Network Interface) comme Calico ou Weave Net.
Elles jouent évidemment un rôle crucial dans la sécurité du réseau en contrôlant le trafic dans le cluster : en isolant des parties de votre application et en contrôlant le flux de trafic entre elles.
En séparant les données et en limitant leur accès, elles répondent donc aux exigences de sécurité. Encore une bonne raison de bien les maitriser !
Comment opèrent les politiques au niveau des pods?
Comme vu plus haut, les Network Policies, permettent de définir la façon dont les pods interagissent et communiquent entre eux.
Elles sont définies comme objets Kubernetes dans un fichier manifeste YAML qui inclut :
- Les sélecteurs souhaités
- Les règles d’ingress
- Les règles d‘egress
C’est l’API Kubernetes qui les appliques. Vous pouvez les mettre à jour via un outil de ligne de commande ou directement avec le tableau de bord Kubernetes.
Une chose très importante à savoir sur les politiques réseaux : elles sont additives.
Cela veut dire que plusieurs politiques appliquées à un ensemble de pods sont combinées pour former un ensemble final de règle.
Soyez vigilant lors de leur configuration !
Maîtriser la configuration des politiques de réseau
Pour les administrateurs et les pro du DevOps, configurer efficacement les Network Policies est crucial.
Ingress vs Egress: quelles différences?
Ingress et Egress sont les deux termes utilisés pour décrire le trafic entrant et sortant des pods :
- Les politiques Ingress définissent le trafic autorisé à atteindre les pods
- Les politiques Egress spécifient le trafic autorisé en fonction des ports et des points de terminaison.
Comment appliquer une politique sur des pods spécifiques ?
Pour cibler des pods spécifiques, vous pouvez utiliser des labels et sélecteurs lors de l’application de politiques réseau.
Les sélecteurs permettent de définir quels pods sont soumis ou pas aux politiques. Il en existe un grand nombre comme :
- Les blocs CIDR
- Les sélecteurs de pods
- Les sélecteurs de namespace
Quels plugins réseau privilégier pour Kubernetes ?7
Il existe de nombreux plugins réseau pour vous aider à mettre en place les bonnes network policies. Les plus populaires sont :
- Calico. Considéré comme très performant et évolutif, il prend en charge énormément d’environnements différents. Il peut être assez difficile d’accès pour les DevOps débutants.
- Weave. C’est la star des petits environnements. Il est facile à installer et à configurer, mais dispose de performances plus modestes
- Cilium. Offre de Haute performance grâce à l’eBPF mais comme Calico, il est difficile à utiliser. Il peut aussi avoir des problèmes de compatibilité avec les environnements plus anciens.
Le choix du bon plugin dépend surtout de vos besoins spécifiques et de celui avec lequel vous êtes le plus à l’aise.
Conclusion
Concevoir des bonnes network policies est vital pour la sécurité de vos clusters Kubernetes. Elles jouent un rôle stratégique et fondamental dans toute la posture de sécurité de vos clusters, et donc de votre organisation.
N’hésitez pas à utiliser des outils et des plugins pour vous aider à créer des network policies avancées et automatiser un maximum de tâches.
Vous pourrez ainsi vous concentrer sur ce qui importe vraiment et limiter le risque d’erreur.