NetworkPolicy à deux niveaux, tous deux
désactivés par défaut :
- Politiques de cluster — politiques propres à chaque cluster couvrant le trafic interne des
ressources
ClickHouseClusteretKeeperCluster, activées viaspec.networkPolicysur chaque ressource personnalisée. - Politiques de pod de l’opérateur — politiques fournies avec le chart qui restreignent le trafic entrant vers le pod du controller manager lui-même pour les points de terminaison des métriques et webhook.
Une
NetworkPolicy n’est appliquée que lorsque le plugin CNI du cluster l’implémente
(par exemple Calico ou Cilium). Sur un CNI sans prise en charge de NetworkPolicy, les
ressources sont créées mais n’ont silencieusement aucun effet — Kubernetes ne renvoie aucune
erreur. Vérifiez que votre CNI applique bien ces politiques avant de vous y fier.NetworkPolicies du cluster
Un keeper admet les clusters ClickHouse en fonction de leur
keeperClusterRef : l’ajout
ou la suppression d’une référence met automatiquement à jour la politique du keeper, y compris
pour les références provenant d’autres espaces de noms.
Autoriser les clients et la supervision
9000/8123 ou leurs variantes
TLS) ni le port des métriques tant que vous ne l’autorisez pas. Les NetworkPolicies étant additives,
accordez donc l’accès à l’aide de votre propre politique, en complément de la politique gérée :
9363 sur ClickHouse,
9090 sur Keeper) : autorisez explicitement votre espace de noms de monitoring.
Définir networkPolicy.policy: Disabled (valeur par défaut) supprime la politique
gérée ; les politiques définies par l’utilisateur ne sont jamais modifiées par l’opérateur, à moins qu’elles
ne portent le label app du cluster.
Désactivation à l’échelle du cluster
ENABLE_NETWORK_POLICY de l’opérateur. Lorsque ENABLE_NETWORK_POLICY=false, l’opérateur ignore l’étape de réconciliation des NetworkPolicy pour tous les ClickHouseCluster et KeeperCluster, quelle que soit leur spec.networkPolicy.policy,
et ne surveille pas du tout les ressources NetworkPolicy. Le
ServiceAccount de l’opérateur n’a donc pas besoin d’autorisations RBAC sur
networkpolicies.networking.k8s.io, ce qui est utile lorsque l’opérateur s’exécute
sous un ServiceAccount restreint qui ne dispose intentionnellement pas de ces autorisations.
Politiques du pod de l’opérateur
Ce que crée le chart Helm
Les deux politiques déclarent uniquement
policyTypes: [Ingress]. Elles ne restreignent pas le trafic sortant
de l’opérateur et ne concernent ni les pods du serveur ClickHouse ni ceux de Keeper.
Refus par défaut
NetworkPolicy d’entrée, il passe en refus
par défaut du trafic entrant : dès qu’une politique s’applique, tout trafic entrant vers le
pod du controller manager qui n’est pas explicitement autorisé est bloqué. Après activation,
les seuls flux entrants qui atteignent l’opérateur sont :
- une collecte de métriques depuis un espace de noms portant l’étiquette
metrics: enabled, et - un appel au webhook d’admission depuis un espace de noms portant l’étiquette
webhook: enabled.
Activation des politiques
allow-webhook-traffic nécessite également webhook.enabled: true (la
valeur par défaut) ; désactiver le webhook supprime donc aussi sa politique.
Avec les manifestes kubectl bruts, décommentez la section [NETWORK POLICY] comme
indiqué dans le guide d’installation kubectl.
Les manifestes bruts incluent ces deux mêmes politiques.
Attribution de labels aux espaces de noms clients
namespaceSelector, chaque espace de noms
qui doit pouvoir joindre l’operator doit porter le label correspondant. Une collecte ou
un appel de webhook provenant d’un espace de noms sans label est rejeté.
Vérification
- Prometheus continue de scraper le point de terminaison des métriques (son espace de noms porte le libellé
metrics: enabledet est lié au ClusterRole metrics-reader). - La création ou la mise à jour d’un
ClickHouseClusterpasse toujours l’admission (le webhook est joignable).
- Supervision de l’operator — le point de terminaison des métriques, son RBAC et la sécurisation de la collecte.
- Installer avec kubectl — où décommenter la section de politique réseau.
- Installer avec Helm — les valeurs du chart relatives à l’operator.