En esta página, se explica cómo puedes mejorar la seguridad de la red y el control del tráfico dentro de tu clúster configurando políticas de red de varias redes que se apliquen específicamente a una red de Pods designada. Estas políticas de red de varias redes controlan el tráfico con reglas de firewall a nivel del Pod y controlan el flujo de tráfico entre Pods y Services.
Para comprender cómo funcionan las políticas de red de varias redes, consulta cómo funcionan las políticas de red con las redes de Pods.
Requisitos
Para usar políticas de red de varias redes, ten en cuenta los siguientes requisitos:
- Google Cloud CLI versión 459 y posteriores.
- Debes tener un clúster de GKE que ejecute una de las siguientes versiones:
- 1.28.5-gke.1293000 o superior
- 1.29.0-gke.1484000 o superior
- Tu clúster debe usar GKE Dataplane V2.
Limitaciones
No se admiten las políticas de red de FQDN ni las políticas de red de CiliumClusterWide: Si usas una política de red de FQDN y una política de red de CiliumClusterWide en un Pod que está conectado a varias redes, las políticas afectarán todas las conexiones del Pod, incluidas las conexiones en las que no se aplican las políticas.
Configura políticas de red de varias redes
Para usar políticas de red de varias redes, haz lo siguiente:
- Crea un clúster con GKE habilitado para varias redes .
- Crea un grupo de nodos y una red de Pods.
- Haz referencia a la red de Pods.
- Crea una política de red que se aplique y que haga referencia a la misma red de Pod que utiliza la carga de trabajo.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta el comando
gcloud components update
para obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos que se describen en este documento.
Crea una política de red
Para crear una política de red que aplique reglas en la misma red de Pods que tu carga de trabajo, haz referencia a la red de Pods específica en la definición de la política de red.
Para definir las reglas de tráfico de entrada seleccionadas y los Pods de destino según etiquetas o cualquier otro selector, crea una política de red estándar.
Guarda el siguiente manifiesto de muestra como
sample-ingress-network-policy1.yaml
:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: sample-network-policy namespace: default annotations: networking.gke.io/network: blue-pod-network # GKE-specific annotation for network selection spec: podSelector: matchLabels: app: test-app-2 # Selects pods with the label "app: test-app-2" policyTypes: - Ingress # Specifies the policy applies only to incoming traffic ingress: - from: # Allow incoming traffic only from... - podSelector: matchLabels: app: test-app-1 # ...pods with the label "app: test-app-1"
Aplica el manifiesto
sample-ingress-network-policy1.yaml
:kubectl apply -f sample-ingress-network-policy1.yaml
Para definir las reglas de tráfico de salida seleccionadas y los Pods de destino según etiquetas o cualquier otro selector, crea una política de red estándar.
Guarda el siguiente manifiesto de muestra como
sample-egress-network-policy2.yaml
:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: sample-network-policy-2 namespace: default annotations: networking.gke.io/network: blue-pod-network # GKE-specific annotation (optional) spec: podSelector: matchLabels: app: test-app-2 policyTypes: - Egress # Only applies to outgoing traffic egress: - to: - podSelector: matchLabels: app: test-app-3
Aplica el manifiesto
sample-egress-network-policy2.yaml
:kubectl apply -f sample-egress-network-policy2.yaml
Soluciona problemas relacionados con las políticas de red de varias redes
Si tienes problemas con las políticas de red, ya sea que se apliquen a redes de Pods específicas o no, puedes diagnosticar y solucionar el problema ejecutando los siguientes comandos:
kubectl get networkpolicy
: enumera todos los objetos de la política de red y la información sobre ellos.iptables-save
: Recupera y enumera todas las cadenas de tablas de direcciones IP para un nodo en particular. Debes ejecutar este comando en el nodo como raíz.cilium bpf policy get <endpoint-id>
: Recupera y enumera las direcciones IP permitidas del mapa de políticas de cada extremo.cilium policy selectors
: imprime las identidades y las políticas asociadas que las seleccionaron.cilium identity list
: Muestra las asignaciones de identidad a dirección IP.
¿Qué sigue?
- Lee Acerca de las políticas de red de varias redes
- Lee Configurar la compatibilidad con varias redes para Pods