En este tema, se explica cómo usar las políticas de red de Kubernetes para proteger los pods de Cassandra y Redis dentro de un clúster de Apigee Hybrid.
Descripción general
Cuando quieras controlar el flujo de tráfico a nivel de la dirección IP o del puerto (OSI capa 3 o 4), puedes usar las políticas de red de Kubernetes para las aplicaciones en tu clúster. Las políticas de red son una construcción centrada en la aplicación que puedes usar para especificar cómo un pod puede comunicarse con otros pods en tu clúster.
En Apigee Hybrid, puedes usar las políticas de red de Kubernetes para aislar los pods de Cassandra a fin de que solo los pods que están destinados a comunicarse con Cassandra puedan hacerlo, como los entornos de ejecución, Synchronizer y MART. Otros pods en el clúster, como los de Ingres y Watcher que no necesitan comunicarse con Cassandra están bloqueados para hacerlo.
Si no tienes restricciones sobre qué pods pueden interactuar dentro de tu clúster, no necesitas usar las políticas de red de Kubernetes.
Requisitos previos
-
Habilita las políticas de red en tu clúster.
- GKE: Consulta Habilita la aplicación de políticas de red.
- EKS: Consulta Instala el complemento de motor de política de red de Calico.
- AKS: Consulta Protege el tráfico entre pods con las políticas de red en Azure Kubernetes Service (AKS) .
- Otras plataformas: Busca instrucciones de tu proveedor de plataforma específico para habilitar las políticas de red en tu clúster.
- Un clúster de Apigee Hybrid que se encuentra en ejecución, versión 1.8 o posterior.
Procedimiento
Descarga y extrae el paquete de lanzamiento apigeectl
.
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
Los archivos de configuración para las políticas de red de Kubernetes para Cassandra y Redis están en la siguiente estructura de directorio dentro del directorio 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
En el ejemplo anterior, ORG_NAME
es el nombre de tu organización de Apigee.
- Etiqueta el espacio de nombres con el siguiente comando:
kubectl label namespace APIGEE_NAMESPACE app=apigee
- Aplica las políticas de red con el siguiente comando:
kubectl apply -k ${APIGEECTL_HOME}/examples/network-policies/securing-cassandra-redis-pods/overlays/ORG_NAME
- Usa el siguiente comando para validar que las políticas de red se hayan aplicado:
kubectl get netpol -n APIGEE_NAMESPACE
Las siguientes políticas de red deben crearse en el espacio de nombres 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