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
Per controllare il flusso di traffico a livello di indirizzo IP o di porta (livello 3 o 4 OSI), puoi utilizzare i criteri di rete di Kubernetes per le applicazioni nel tuo cluster. I criteri di rete sono un costrutto incentrato sulle applicazioni che puoi utilizzare per specificare in che modo un pod può comunicare con altri pod nel cluster.
In Apigee hybrid puoi utilizzare i criteri di rete di Kubernetes per isolare i pod Cassandra è consentito ai pod destinati a comunicare con Cassandra, come Runtime, Sincronizzatore e pod Mart. Altri pod nel cluster, come i pod Ingres e Watcher, che non che devono comunicare con Cassandra.
Se non hai limitazioni sui pod che possono interagire all'interno del cluster, non è necessario utilizzare i criteri di rete Kubernetes.
Prerequisiti
-
Abilita i criteri di rete nel cluster.
- GKE: Vedi Attivazione dell'applicazione forzata dei criteri di rete.
- EKS: consulta la sezione Installazione. il componente aggiuntivo Calico Network Policy Engine.
- AKS: vedi Sicurezza traffico tra pod utilizzando i criteri di rete del servizio Azure Kubernetes (AKS) .
- Altre piattaforme: cerca le istruzioni per abilitare i criteri di rete nel tuo cluster dal fornitore della piattaforma specifica.
- Un cluster ibrido Apigee attualmente in esecuzione, versione 1.8 o successiva.
Procedura
Scarica ed estrai il pacchetto di release apigeectl
.
Linux
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.11.2/apigeectl_linux_64.tar.gz
Mac OS
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
I file di configurazione per i criteri di rete Kubernetes per Cassandra e Redis si trovano nella
seguente struttura di directory all'interno della directory apigeectl
:
└── 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 lo spazio dei nomi con il seguente comando:
kubectl label namespace APIGEE_NAMESPACE app=apigee
- Applica i criteri di rete con il seguente comando:
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_NAMESPACE
I seguenti criteri di rete devono essere creati nello spazio dei nomi APIGEE_NAMESPACE:
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