Crea una política de red de clúster

En esta página, se explica cómo configurar las políticas de red en Google Kubernetes Engine. Para obtener información general sobre las herramientas de redes de GKE, ve a la Descripción general de la red.

Descripción general

Puedes usar la aplicación de la política de red de GKE para controlar la comunicación entre los pods y los servicios del clúster. Para definir una política de red en GKE, puedes usar la API de política de red de Kubernetes a fin de crear reglas de firewall a nivel del pod. Estas reglas de firewall determinan los pods y servicios que se pueden acceder entre sí dentro del clúster.

La definición de políticas de red te ayuda a habilitar estrategias como la defensa en profundidad cuando el clúster entrega una aplicación de varios niveles. Por ejemplo, puedes crear una política de red para asegurar que un servicio de frontend vulnerable en la aplicación no pueda comunicarse directamente con un servicio de facturación o contabilidad en varios niveles inferiores.

La política de red también le facilita a la aplicación alojar datos de varios usuarios de manera simultánea. Por ejemplo, puedes proporcionar instancia múltiple segura si defines un modelo de instancia por espacio de nombres. En este modelo, las reglas de la política de red pueden garantizar que los pods y los servicios en un espacio de nombres determinado no puedan acceder a otros pods o servicios en un espacio de nombres diferente.

Antes de comenzar

Sigue estos pasos a fin de prepararte para esta tarea:

  • Asegúrate de que habilitaste la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Asegúrate de que instalaste el SDK de Cloud.
  • Establece tu ID del proyecto predeterminado:
    gcloud config set project [PROJECT_ID]
  • Si trabajas con clústeres zonales, establece tu zona de procesamiento predeterminada:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Si trabajas con clústeres regionales, establece tu región de procesamiento predeterminada:
    gcloud config set compute/region [COMPUTE_REGION]
  • Actualiza gcloud a la versión más reciente:
    gcloud components update

Usa la aplicación de la política de red

Para habilitar o inhabilitar la aplicación de la política de red, puedes usar la herramienta de línea de comandos de gcloud, la API de REST de GKE o Google Cloud Platform Console.

Una vez que hayas habilitado la política de red en tu clúster, puedes crear una política de red con la API de política de red de Kubernetes.

Puedes habilitar la aplicación de política de red cuando creas un clúster de GKE o puedes habilitarla para un clúster existente. También puedes inhabilitar la política de red para un clúster existente.

Nota: Si habilitas o inhabilitas la política de red para un clúster existente, se requiere que GKE vuelva a crear todos los grupos de nodos del clúster a fin de asegurarse de que los nodos estén configurados para ejecutar el proceso de política de red.

Habilita la aplicación de la política de red

gcloud

Para habilitar la aplicación de la política de red cuando creas un clúster nuevo con la herramienta de línea de comandos de gcloud, debes ejecutar el comando gcloud container clusters create con la marca --enable-network-policy:

gcloud container clusters create [CLUSTER_NAME] --enable-network-policy

Habilita la aplicación de la política de red para un clúster existente con la herramienta de línea de comandos de gcloud es un proceso de dos pasos. Primero, debes ejecutar el comando gcloud container clusters update con la marca --update-addons:

gcloud container clusters update [CLUSTER_NAME] --update-addons=NetworkPolicy=ENABLED

Luego, ejecutar el comando gcloud container clusters update con la marca --enable-network-policy. Este comando hace que los grupos de nodos de tu clúster se vuelvan a crear con la política de red habilitada:

gcloud container clusters update [CLUSTER_NAME] --enable-network-policy

Console

Para habilitar la aplicación de la política de red cuando creas un clúster nuevo, sigue los pasos siguientes:

  1. Dirígete al menú Google Kubernetes Engine en GCP Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en Crear clúster.

  3. Configura tu clúster como desees.

  4. Haz clic en Opciones avanzadas. En la sección Herramientas de redes, selecciona Habilitar la política de red.

  5. Haz clic en Crear.

Para habilitar la aplicación de la política de red para un clúster existente, ejecuta los pasos siguientes:

  1. Dirígete al menú Google Kubernetes Engine en GCP Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en el clúster en el que deseas aplicar la política de red.

  3. Haz clic en Editar junto a un ícono de lápiz.

  4. En el menú desplegable Política de red para la instancia principal, selecciona Habilitada.

  5. Haz clic en Guardar y, luego, vuelve a hacer clic en Editar una vez que se actualice el clúster.

  6. En el menú desplegable Política de red para nodos, selecciona Habilitada.

  7. Haz clic en Guardar.

API

Para habilitar la política de red con la API de GKE, debes especificar el objeto networkPolicy dentro del objeto cluster que proporcionas a projects.zones.clusters.create o a projects.zones.clusters.update.

El objeto networkPolicy requiere una enumeración que especifique qué proveedor de políticas de red usar y un booleano que especifique si se debe habilitar la política de red. Si habilitas la política de red, pero no estableces el proveedor, los comandos create y update muestran un error. En la actualidad el único valor de proveedor válido es CALICO.

Inhabilita la aplicación de la política de red

gcloud

A fin de inhabilitar la aplicación de la política de red para un clúster existente con la herramienta de línea de comandos de gcloud, debes ejecutar el comando gcloud container clusters update con la marca --no-enable-network-policy.

gcloud container clusters update [CLUSTER_NAME] --no-enable-network-policy

Console

  1. Dirígete al menú Google Kubernetes Engine en GCP Console.

    Ir al menú Google Kubernetes Engine

  2. Haz clic en el botón Editar del clúster, que tiene forma de lápiz.

  3. En el menú desplegable Política de red para nodos, selecciona Inhabilitada.

  4. Haz clic en Guardar. Luego, haz clic de nuevo en Editar.

  5. En el menú desplegable Política de red para instancia principal, selecciona Inhabilitada.

  6. Haz clic en Guardar.

API

A fin de inhabilitar la aplicación de la política de red para un clúster existente con la API de GKE, especifica el objeto networkPolicy dentro del objeto cluster que proporcionas en projects.zones.clusters.update. Dentro del objeto networkPolicy, establece el valor booleano enabled en false.

Crea una política de red

Una vez que hayas habilitado la aplicación de la política de red para tu clúster, deberás definir la política de red real. La política de red se define con la API de política de red de Kubernetes.

Para obtener más detalles sobre cómo crear una política de red, consulta los temas siguientes en la documentación de Kubernetes:

Trabaja con PodSecurityPolicy

Si usas una NetworkPolicy y tienes un pod que depende de PodSecurityPolicy, debes crear una función RBAC o ClusterRole que tenga permiso para usar la PodSecurityPolicy. Luego, vincula la función o ClusterRole a la cuenta de servicio del pod. En este caso, otorgar permisos a las cuentas de usuarios no es suficiente. Para obtener más información, consulta esta página sobre cómo Autorizar políticas.

Anula una política de red de manera temporal

En caso de tener problemas o en circunstancias extraordinarias, puedes inhabilitar de manera temporal la aplicación de la política de red en tu clúster. Para obtener más información, consulta la documentación de Tigera sobre la anulación de la política de Calico.

Sobrecarga, limitaciones y advertencias

  • Habilitar la aplicación de la política de red consume recursos adicionales en los nodos. Específicamente, aumenta el alcance de la memoria en el proceso “kube-system” en aproximadamente 128 MB, y requiere aproximadamente 300 millicores de CPU.
  • Habilitar la aplicación de la política de red requiere que los nodos se vuelvan a crear. Si tu clúster tiene un período de mantenimiento activo, los nodos no se vuelven a crear de manera automática hasta el próximo período de mantenimiento. Si prefieres, puedes actualizar tu clúster de manera manual en cualquier momento.

Limitaciones y requisitos

  • Su clúster debe tener, al menos, 2 nodos de tipo n1-standard-1 o superior. El clúster de tamaño mínimo recomendado para ejecutar la aplicación de la política de red es de 3 instancias n1-standard-1.
  • La política de red no es compatible con los clústeres cuyos nodos son instancias f1-micro o g1-small, ya que los requisitos de recursos son demasiado altos para instancias de ese tamaño.

Para obtener más información sobre tipos de máquinas de nodo y recursos asignables, consulta Arquitectura del clúster: nodos.

Trabaja con las verificaciones de estado del balanceador de cargas HTTP(S)

Cuando se aplica un Ingress a un servicio para compilar un balanceador de cargas HTTP(S), la política de red aplicada a los pods detrás de ese servicio también debe permitir los rangos de IP de sondeo del balanceador de cargas HTTP(S) adecuados.

Además, los puertos de nodos para un servicio pueden reenviar conexiones a pods en otros nodos, a menos que no puedan hacerlo porque externalTrafficPolicy está establecido en “Local” en la definición del servicio. Si externalTrafficPolicy no está configurado en Local, la política de red también debe permitir las conexiones de otras IP de nodo en el clúster.

Ten en cuenta que este debate no se aplica cuando se usa el balanceo de cargas nativo del contenedor con Grupos de extremos de red.

Pasos siguientes

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Kubernetes Engine