Cet article explique comment utiliser les règles de réseau Kubernetes pour sécuriser les pods Cassandra et Redis dans un cluster Apigee hybrid.
Aperçu
Lorsque vous souhaitez contrôler le flux de trafic au niveau de l'adresse IP ou du port (couche 3 ou 4 du modèle OSI), vous pouvez utiliser les règles de réseau Kubernetes pour les applications de votre cluster. Les règles de réseau sont une construction centrée sur les applications que vous pouvez utiliser pour spécifier comment un pod est autorisé à communiquer avec d'autres pods de votre cluster.
Dans Apigee hybrid, vous pouvez utiliser les règles de réseau Kubernetes pour isoler les pods Cassandra afin que seuls les pods destinés à communiquer avec Cassandra, tels que les pods d'exécution, de synchronisation et MART, y soient autorisés. La communication avec Cassandra est bloquée pour les autres pods du cluster, tels que les pods d'entrée et d'observation, qui n'en ont pas besoin.
Si vous n'avez aucune restriction quant aux pods pouvant interagir au sein de votre cluster, vous n'avez pas besoin d'utiliser les règles de réseau Kubernetes.
Prérequis
-
Activez les règles de réseau dans votre cluster.
- GKE : consultez la page Activer l'application de la règle de réseau.
- EKS : consultez la page Installer le module complémentaire de moteur de règle de réseau Calico.
- AKS : consultez la page Sécuriser le trafic entre les pods à l'aide de règles de réseau dans Azure Kubernetes Service (AKS) .
- Autres plates-formes : recherchez les instructions d'activation des règles de réseau sur votre cluster auprès de votre fournisseur de plate-forme spécifique.
- Un cluster Apigee hybrid en cours d'exécution, en version 1.8 ou ultérieure.
Procédure
Si vous exécutez la version 1.8.x d'Apigee hybrid, téléchargez et extrayez le dernier package de version Apigee.
Linux
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.11.2/apigeectl_linux_64.tar.gz
macOS
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.11.2/apigeectl_mac_64.tar.gz
Windows
curl -LO ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.11.2/apigeectl_windows_64.zip
Les fichiers de configuration des règles de réseau Kubernetes pour Cassandra et Redis se trouvent dans la structure des répertoires ci-dessous au sein de votre répertoire $APIGEECTL_HOME
:
└── apigeectl └── examples └── network-policies └── securing-cassandra-redis-pods ├── README.md ├── base │ └── cluster-scoped-communication │ ├── cassandra │ │ ├── kustomization.yaml │ │ ├── networkpolicy-cassandra-allow-controller.yaml │ │ ├── networkpolicy-cassandra-allow-intranode.yaml │ │ ├── networkpolicy-cassandra-allow-mart.yaml │ │ ├── networkpolicy-cassandra-allow-runtime.yaml │ │ ├── networkpolicy-cassandra-alow-sync.yaml │ │ ├── networkpolicy-cassandra-create-user.yaml │ │ ├── networkpolicy-cassandra-monitoring.yaml │ │ └── networkpolicy-cassandra-remove-dc.yaml │ └── redis │ ├── kustomization.yaml │ ├── networkpolicy-redis-envoy.yaml │ └── networkpolicy-redis.yaml └── overlays └── ORG_NAME └── kustomization.yaml
Où ORG_NAME
est le nom de votre organisation Apigee.
- Attribuez une étiquette aux espaces de noms à l'aide de la commande suivante :
kubectl label namespace apigee app=apigee
kubectl label namespace apigee-system app=apigee-system
- Appliquez les règles de réseau à l'aide de la commande suivante :
kubectl apply -k ${APIGEECTL_HOME}/examples/network-policies/securing-cassandra-redis-pods/overlays/ORG_NAME
- Vérifiez que les règles de réseau ont été appliquées à l'aide de la commande suivante :
kubectl get netpol -n apigee
Les règles de réseau suivantes doivent être créées dans l'espace de noms
apigee
:NAME POD-SELECTOR AGE cassandra-from-mart app=apigee-cassandra 4d5h cassandra-from-runtime app=apigee-cassandra 4d5h cassandra-from-sync app=apigee-cassandra 4d5h cassandra-to-cassandra app=apigee-cassandra 4d5h controller-to-cassandra app=apigee-cassandra 4d5h redis-from-redisenvoy app=apigee-redis 3d18h redisenvoy-from-runtime app=apigee-redis-envoy 3d18h