Funciones de redes de Distributed Cloud conectado

En esta página, se describen las funciones de redes de Google Distributed Cloud conectado, incluidas las subredes y el balanceo de cargas.

Habilita la API de Distributed Cloud Edge Network

Antes de que puedas configurar las redes en una implementación conectada de Distributed Cloud, debes habilitar la API de Distributed Cloud Edge Network. Para ello, completa los pasos de esta sección. De forma predeterminada, los servidores de Distributed Cloud conectado se envían con la API de Distributed Cloud Edge Network ya habilitada.

Console

  1. En la Google Cloud consola, ve a la página de la API de Distributed Cloud Edge Network.

    Habilitar la API

  2. Haz clic en Habilitar.

gcloud

Usa el siguiente comando:

gcloud services enable edgenetwork.googleapis.com

Configura las redes en Distributed Cloud conectado

En esta sección, se describe cómo configurar los componentes de redes en tu implementación de Distributed Cloud conectado.

Las siguientes limitaciones se aplican a los servidores de Distributed Cloud conectado:

  • Solo puedes configurar subredes.
  • Las subredes solo admiten IDs de VLAN. No se admiten subredes basadas en CIDR.

Una configuración de red típica para Distributed Cloud conectado consta de los siguientes pasos:

  1. Opcional: Inicializa la configuración de red de la zona de destino, si es necesario.

  2. Crea una red

  3. Crea una o más subredes dentro de la red.

  4. Prueba la configuración.

  5. Conecta tus pods a la red.

Inicializa la configuración de red de la zona de Distributed Cloud

Debes inicializar la configuración de red de tu zona de Distributed Cloud conectado inmediatamente después de que se haya instalado el hardware de Distributed Cloud conectado en tus instalaciones. Inicializar la configuración de red de una zona es un procedimiento único.

Inicializar la configuración de red de una zona crea una red predeterminada llamada default. Esta configuración proporciona a tu implementación de Distributed Cloud conectado conectividad de vínculo superior básica a tu red local.

Para obtener instrucciones, consulta Inicializa la configuración de red de una zona.

Crea una red

Para crear una red nueva, sigue las instrucciones en Crea una red. También debes crear al menos una subred dentro de la red para permitir que los nodos de Distributed Cloud conectado se conecten a la red.

Crea una o más subredes

Para crear una subred, sigue las instrucciones en Crea una subred. Debes crear al menos una subred en tu red para permitir que los nodos accedan a la red. La VLAN correspondiente a cada subred que crees está disponible automáticamente para todos los nodos de la zona.

Prueba la configuración

Para probar la configuración de los componentes de red que creaste, haz lo siguiente:

  1. Verifica el estado operativo de la red.

  2. Verifica el estado de aprovisionamiento de cada subred.

Conecta tus pods a la red

Para conectar tus pods a la red y configurar funciones de red avanzadas, sigue las instrucciones en Operador de funciones de red. Esta función no está disponible para las cargas de trabajo de máquina virtual.

Opcional: Configura el aislamiento de la red del clúster

Distributed Cloud conectado admite el aislamiento de la red del clúster. Los nodos asignados a un clúster aislado de la red no pueden comunicarse con ningún otro nodo dentro de la misma zona de Distributed Cloud conectado. Para habilitar el aislamiento de la red del clúster, usa la marca --enable-cluster-isolation cuando crees o modifiques un clúster. Para obtener más información, consulta Crea y administra clústeres.

Opcional: Configura el modo isla

Distributed Cloud conectado admite el modo isla para su subsistema de redes virtuales. El modo isla te permite especificar un rango de direcciones IP aislado en la interfaz de red secundaria de un pod. Este rango de direcciones aislado es independiente del rango de direcciones de la VLAN de la interfaz de red principal. A los pods configurados para el modo isla solo se les asignan direcciones de este rango de direcciones “isla” aislado. Para obtener más información, consulta Modelos de red de modo plano frente a modo isla.

El rango de direcciones IP aislado que especifiques para el modo isla no debe entrar en conflicto con los siguientes rangos de direcciones IP:

  • El CIDR de VLAN principal para cualquier red configurada en el clúster
  • El rango de direcciones IP virtuales del balanceador de cargas especificado en la anotación networking.gke.io/gdce-lb-service-vip-cidrs en el recurso Network
  • Los rangos de direcciones IP que se usan para el modo isla para cualquier otra red del clúster

Configura el modo isla

Para configurar el modo isla a nivel del pod, agrega la anotación networking.gke.io/gdce-pod-cidr al recurso personalizado Network correspondiente. Establece el valor de la anotación en el rango de direcciones IP aislado de destino y aplica el recurso Network modificado a tu clúster. Por ejemplo:

networking.gke.io/gdce-pod-cidr: 172.15.10.32/27

También debes establecer los siguientes parámetros:

  • type debe establecerse en L3.
  • IPAMMode debe establecerse en Internal.

Por ejemplo:

apiVersion: networking.gke.io/v1
kind: Network
metadata:
  name: my-network
  annotations:
    # Enable island mode and specify the isolated address range.
    networking.gke.io/gdce-pod-cidr: 172.15.10.32/27
    # Specify the VLAN ID for this secondary network.
    networking.gke.io/gdce-vlan-id: "561"
    # Specify the CIDR block for load balancer services on this network.
    networking.gke.io/gdce-lb-service-vip-cidrs: 172.20.5.180/30
spec:
  # Network type must be L3 for island mode.
  type: L3
  # IPAMMode must be Internal for island mode.
  IPAMMode: Internal
  nodeInterfaceMatcher:
    interfaceName: gdcenet0.561 # The name for the target network interface.
  gateway4: 172.20.5.177 # Gateway IP address; must be unique in this CR.
  externalDHCP4: false
  dnsConfig:
    nameservers:
    - 8.8.8.8

Para verificar que el modo isla esté habilitado, haz lo siguiente:

  1. Crea un pod de prueba y aplícalo a tu clúster. Por ejemplo:

    apiVersion: v1
    kind: Pod
    metadata:
      name: island-pod-tester
      annotations:
        networking.gke.io/interfaces: '[{"interfaceName":"eth1","network":"test-network-vlan561"}]'
        networking.gke.io/default-interface: "eth1"
    spec:
      containers:
      - name: sample-container
        image: busybox
        command: ["/bin/sh", "-c", "sleep 3600"]
    
  2. Obtén la dirección IP del pod:

    kubectl get pod island-pod-tester -o wide
    

    El comando devuelve la dirección IP del pod, que se encuentra dentro del rango de direcciones aislado que especificaste.

Configura el modo isla con el servicio ClusterIP

Para configurar el modo isla con el servicio ClusterIP, completa los pasos de la sección anterior, luego agrega la anotación networking.gke.io/gke-gateway-clusterip-cidr a tu recurso Network y establece su valor según las necesidades de tu empresa. Los rangos de direcciones especificados en el recurso Network no deben superponerse. Por ejemplo:

apiVersion: networking.gke.io/v1
kind: Network
metadata:
  annotations:
    networking.gke.io/gdce-lb-service-vip-cidrs: 172.20.5.180/30
    networking.gke.io/gdce-pod-cidr: 172.15.10.32/27
    networking.gke.io/gdce-vlan-id: "561"
    networking.gke.io/gke-gateway-clusterip-cidr: 10.20.1.0/28
  name: test-network-vlan561
spec:
  IPAMMode: Internal
  dnsConfig:
    nameservers:
    - 8.8.8.8
  externalDHCP4: false
  gateway4: 172.20.5.177
  nodeInterfaceMatcher:
    interfaceName: gdcenet0.561
  type: L3

Balanceo de cargas

Distributed Cloud se envía con una solución de balanceo de cargas de red en paquetes basada en MetalLB en modo de capa 2. Puedes usar esta solución para exponer servicios que se ejecutan en tu zona de Distributed Cloud al mundo exterior mediante el uso de direcciones IP virtuales (VIP) de la siguiente manera:

  1. Tu administrador de red planifica la topología de red y especifica la subred de direcciones IPv4 virtuales requerida cuando solicita Distributed Cloud. Google configura el hardware de Distributed Cloud en consecuencia antes de la entrega. Ten en cuenta lo siguiente:
    • Esta subred de VIP se comparte entre todos los clústeres de Kubernetes que se ejecutan dentro de tu zona de Distributed Cloud.
    • Las direcciones primera (ID de red), segunda (puerta de enlace predeterminada) y última (dirección de transmisión ) de la subred están reservadas para la funcionalidad principal del sistema. No asignes esas direcciones a los grupos de direcciones de las configuraciones de MetalLB.
    • Cada clúster debe usar un rango de VIP separado que se encuentre dentro de la subred de VIP configurada.
  2. Cuando creas un clúster en tu zona de Distributed Cloud, el administrador del clúster especifica los grupos de direcciones de pod y de servicio ClusterIP con la notación CIDR. Tu administrador de red proporciona la subred de VIP LoadBalancer adecuada al administrador del clúster.
  3. Después de crear el clúster, el administrador del clúster configura los grupos de VIP correspondientes. Debes especificar los grupos de VIP con la marca --external-lb-address-pools cuando crees el clúster. La marca acepta un archivo con una carga útil de YAML o JSON en el siguiente formato:

     addressPools:
     - name: foo
       addresses:
       - 10.2.0.212-10.2.0.221
       - fd12::4:101-fd12::4:110
       avoid_buggy_ips: true
       manual_assign: false
    
     - name: bar
       addresses:
       - 10.2.0.202-10.2.0.203
       - fd12::4:101-fd12::4:102
       avoid_buggy_ips: true
       manual_assign: false
    

    Para especificar un grupo de direcciones VIP, proporciona la siguiente información en la carga útil:

    • name: Un nombre descriptivo que identifica de forma única este grupo de direcciones VIP.
    • addresses: Una lista de direcciones IPv4, rangos de direcciones y subredes para incluir en este grupo de direcciones.
    • avoid_buggy_ips: Excluye las direcciones IP que terminan en .0 o .255.
    • manual_assign: Te permite asignar direcciones de este grupo de forma manual en la configuración del servicio de destino LoadBalancer en lugar de que el controlador de MetalLB las asigne automáticamente.

    Para obtener más información sobre la configuración de grupos de direcciones VIP, consulta Especifica grupos de direcciones en la documentación de MetalLB.

  4. El administrador del clúster crea los servicios Kubernetes LoadBalancer adecuados.

Los nodos de Distributed Cloud en un solo grupo de nodos comparten un dominio común de capa 2 y, por lo tanto, también son nodos del balanceador de cargas de MetalLB. Cuando sigues estos pasos, el balanceo de cargas de capa 2 con MetalLB se configura automáticamente.

Recurso ClusterDNS

Distributed Cloud conectado admite el recurso ClusterDNS de Google Distributed Cloud para configurar servidores de nombres ascendentes para dominios específicos mediante la sección spec.domains. Para obtener más información sobre la configuración de este recurso, consulta spec.domains.

¿Qué sigue?