Questo argomento spiega come utilizzare i criteri di rete di Kubernetes per proteggere i pod Cassandra e Redis all'interno di un cluster ibrido Apigee .
Panoramica
Se vuoi controllare il flusso di traffico a livello di indirizzo IP o di porta (livello OSI 3 o 4), puoi utilizzare i criteri di rete di Kubernetes per le applicazioni nel tuo cluster. I criteri di rete sono una struttura incentrata sull'applicazione che puoi utilizzare per specificare in che modo un pod può comunicare con altri pod nel tuo cluster.
In Apigee hybrid puoi utilizzare i criteri di rete di Kubernetes per isolare i pod Cassandra in modo che siano autorizzati solo i pod destinati a comunicare con Cassandra, ad esempio i pod Runtime, Sincronizzar e Mart. Gli altri pod nel cluster, come i pod Ingres e Watcher, che non hanno bisogno di comunicare con Cassandra, non possono farlo.
Se non hai limitazioni su quali pod possono interagire all'interno del cluster, non è necessario utilizzare i criteri di rete di Kubernetes.
Prerequisiti
-
Abilita i criteri di rete nel cluster.
- GKE: consulta Abilitazione dell'applicazione dei criteri di rete.
- EKS: consulta Installazione del componente aggiuntivo Calico Network Policy Engine.
- AKS: consulta Proteggere il traffico tra i pod utilizzando i criteri di rete nel servizio Azure Kubernetes (AKS) .
- Altre piattaforme: cerca le istruzioni per abilitare i criteri di rete sul tuo cluster dal tuo fornitore specifico della piattaforma.
- Un cluster ibrido Apigee attualmente in esecuzione, versione 1.8 o successiva.
Procedura
Se esegui la versione ibrida 1.8.x, scarica ed estrai il pacchetto di release più recente di Apigee.
Linux
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.9.4/apigeectl_linux_64.tar.gz
Mac OS
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.9.4/apigeectl_mac_64.tar.gz
Windows
curl -LO ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.9.4/apigeectl_windows_64.zip
I file di configurazione per i criteri di rete di Kubernetes per Cassandra e Redis si trovano nella
seguente struttura di directory all'interno della directory $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
Dove ORG_NAME
è il nome della tua organizzazione Apigee.
- Etichetta gli spazi dei nomi con il seguente comando:
kubectl label namespace apigee app=apigee
kubectl label namespace apigee-system app=apigee-system
- Applica i criteri di rete con il comando seguente:
kubectl apply -k ${APIGEECTL_HOME}/examples/network-policies/securing-cassandra-redis-pods/overlays/ORG_NAME
- Verifica che i criteri di rete siano stati applicati con il seguente comando:
kubectl get netpol -n apigee
Nello spazio dei nomi
apigee
devono essere creati i seguenti criteri di rete: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