Balanceo de cargas interno y nombres de DNS

Un registro de dirección de DNS, conocido como un registro A, se usa para asignar un nombre de DNS a una dirección IP. Cuando creas la regla de reenvío de un balanceador de cargas interno, tienes la opción de designar una etiqueta de servicio para que Google Cloud cree un nombre de DNS interno de Compute Engine único para el balanceador de cargas. Este nombre de DNS interno se crea a partir del ID del proyecto, el nombre de la regla de reenvío y una etiqueta de servicio que especifiques.

Especificaciones

Formato del Registro DNS

Cuando agregas una etiqueta de servicio a una regla de reenvío, Google Cloud crea un registro A de DNS interno de Compute Engine mediante uno de estos formatos:

  • Para balanceadores de cargas de red de transferencia internos:

    SERVICE_LABEL.FORWARDING_RULE_NAME.il4.REGION.lb.PROJECT_ID.internal

  • Para balanceadores de cargas de aplicaciones internos regionales y balanceadores de cargas de red del proxy internos regionales:

    SERVICE_LABEL.FORWARDING_RULE_NAME.il7.REGION.lb.PROJECT_ID.internal

SERVICE_LABEL es la etiqueta del servicio de la regla de reenvío que especificaste. Debe seguir este formato:

  • Puedes usar hasta 63 letras minúsculas (a a z), números (0 a 9) o guiones (-).
  • La etiqueta de servicio debe comenzar con una letra en minúscula.
  • La etiqueta de servicio debe terminar con una letra en minúscula o un número.

FORWARDING_RULE_NAME es el nombre de la regla de reenvío que deseas crear.

REGION es la región del balanceador de cargas.

PROJECT_ID es el ID del proyecto. Los ID del proyecto que tienen el formato organization:project-id se convierten en project-id.organization. Por ejemplo, si tu ID del proyecto es example.com:example-marketing-prod, Google Cloud usa example-marketing-prod.example.com.

Crea una regla de reenvío con una etiqueta de servicio

En este procedimiento, se muestra cómo crear una regla de reenvío con una etiqueta de servicio.

En este procedimiento, solo se explica cómo crear una regla de reenvío con una etiqueta de servicio. Se omiten las propiedades de la configuración de backend del balanceador de cargas y otras propiedades de la configuración de frontend. Si es la primera vez que usas los balanceadores de cargas de red de transferencia internos, los balanceadores de cargas de aplicaciones internos regionales o los balanceadores de cargas de red del proxy internos regionales, consulta estas páginas para ver ejemplos completos:

Consola

  1. En la Google Cloud consola, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Haz clic en Crear balanceador de cargas.
  3. Completa los pasos del asistente para crear un balanceador de cargas de red de transferencia interno o un balanceador de cargas de aplicaciones interno regional y haz clic en Configurar.
  4. Ingresa un Nombre para el balanceador de cargas.
  5. Haz clic en Continuar.
  6. Completa la Configuración del backend.
  7. Haz clic en Configuración de frontend. Completa la configuración de frontend y especifica una Etiqueta de servicio en la parte inferior de esa sección.

  8. Haz clic en Listo y, luego, en Revisar y finalizar.

gcloud

Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas de red de transferencia interno, haz lo siguiente:

gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --load-balancing-scheme=INTERNAL \
    --region=REGION \
    --backend-service-region=REGION \
    --backend-service=BACKEND_SERVICE_NAME \
    --network=NETWORK \
    --subnet=SUBNET \
    --address=INTERNAL_IP \
    --ip-protocol=PROTOCOL \
    --ports=PORTS \
    --service-label=SERVICE_LABEL

Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas de red del proxy interno regional, haz lo siguiente:

gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --region=REGION \
    --target-tcp-proxy-region=REGION \
    --target-tcp-proxy=TARGET_PROXY_NAME \
    --network=NETWORK \
    --subnet=SUBNET \
    --address=INTERNAL_IP \
    --ip-protocol=TCP \
    --ports=PORT \
    --service-label=SERVICE_LABEL

Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas de aplicaciones interno regional con HTTPS, haz lo siguiente:

gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --region=REGION \
    --target-https-proxy-region=REGION \
    --target-https-proxy=TARGET_PROXY_NAME \
    --network=NETWORK \
    --subnet=SUBNET \
    --address=INTERNAL_IP \
    --ip-protocol=TCP \
    --ports=PORT \
    --service-label=SERVICE_LABEL

Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas de aplicaciones interno regional con HTTP, haz lo siguiente:

gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --region=REGION \
    --target-http-proxy-region=REGION \
    --target-http-proxy=TARGET_PROXY_NAME \
    --network=NETWORK \
    --subnet=SUBNET \
    --address=INTERNAL_IP \
    --ip-protocol=TCP \
    --ports=PORT \
    --service-label=SERVICE_LABEL

Reemplaza los marcadores por valores adecuados:

  • FORWARDING_RULE_NAME es el nombre de la regla de reenvío del balanceador de cargas.
  • REGION es la región del balanceador de cargas.
  • BACKEND_SERVICE_NAME es el nombre del servicio de backend del balanceador de cargas.
  • TARGET_PROXY_NAME es el nombre del proxy de destino.
  • NETWORK es el nombre de la red de VPC en la que se crea el balanceador de cargas.
  • SUBNET es el nombre de una subred en la red de VPC. La subred debe estar en la misma región que el servicio de backend o el proxy de destino del balanceador de cargas.
  • INTERNAL_IP es una dirección IP interna en el rango de IP principal de la subred elegida. Puedes omitir la marca --address para que Google Cloud elija una dirección IP disponible por ti.
  • Para los balanceadores de cargas de red de transferencia interno, PROTOCOL es TCP o UDP, lo cual coincide con el protocolo del servicio de backend del balanceador de cargas. Para los balanceadores de cargas de aplicaciones internos regionales y los balanceadores de cargas de red del proxy internos regionales, el protocolo debe ser TCP.
  • Para los balanceadores de cargas de red de transferencia internos, PORTS es un arreglo de hasta cinco puertos por número o la palabra ALL. Para los balanceadores de cargas de aplicaciones internos regionales y los balanceadores de cargas de red del proxy internos regionales, puedes hacer referencia a exactamente un puerto de 1 a 65535. Consulta las especificaciones de puertos en los conceptos de reglas de reenvío para obtener más información.
  • SERVICE_LABEL es la etiqueta de servicio que elegiste. Esta debe seguir las convenciones de nombres.

api

En los siguientes ejemplos, se crean reglas de reenvío mediante el método forwardingRules.insert.

Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas de red de transferencia interno, haz lo siguiente:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules

{
  "name": "FORWARDING_RULE_NAME",
  "loadBalancingScheme": "INTERNAL",
  "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/backendServices/BACKEND_SERVICE_NAME",
  "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK",
  "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET",
  "IPAddress": "INTERNAL_IP",
  "IPProtocol": "PROTOCOL",
  "ports": PORTS,
  "serviceLabel": "SERVICE_LABEL"
}

Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas de red del proxy interno regional, haz lo siguiente:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules

{
  "name": "FORWARDING_RULE_NAME",
  "loadBalancingScheme": "INTERNAL_MANAGED",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/targetTcpProxies/TARGET_PROXY_NAME",
  "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK",
  "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET",
  "IPAddress": "INTERNAL_IP",
  "IPProtocol": "TCP",
  "ports": PORT,
  "serviceLabel": "SERVICE_LABEL"
}

Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas de aplicaciones interno regional con HTTPS, haz lo siguiente:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules

{
  "name": "FORWARDING_RULE_NAME",
  "loadBalancingScheme": "INTERNAL_MANAGED",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/targetHttpsProxies/TARGET_PROXY_NAME",
  "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK",
  "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET",
  "IPAddress": "INTERNAL_IP",
  "IPProtocol": "TCP",
  "ports": PORT,
  "serviceLabel": "SERVICE_LABEL"
}

Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas de aplicaciones interno regional con HTTP, haz lo siguiente:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules

{
  "name": "FORWARDING_RULE_NAME",
  "loadBalancingScheme": "INTERNAL_MANAGED",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/targetHttpProxies/TARGET_PROXY_NAME",
  "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK",
  "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET",
  "IPAddress": "INTERNAL_IP",
  "IPProtocol": "TCP",
  "ports": PORT,
  "serviceLabel": "SERVICE_LABEL"
}

Reemplaza los marcadores por valores adecuados:

  • FORWARDING_RULE_NAME es el nombre de la regla de reenvío del balanceador de cargas.
  • REGION es la región del balanceador de cargas.
  • BACKEND_SERVICE_NAME es el nombre del servicio de backend del balanceador de cargas de red de transferencia interno.
  • TARGET_PROXY_NAME es el nombre del proxy de destino.
  • NETWORK es el nombre de la red de VPC en la que se crea el balanceador de cargas.
  • SUBNET es el nombre de una subred en la red de VPC. La subred debe estar en la misma región que el servicio de backend o el proxy de destino del balanceador de cargas.
  • INTERNAL_IP es una dirección IP interna en el rango de IP principal de la subred elegida. Puedes omitir la clave IPAddress para que Google Cloud elija una dirección IP disponible por ti.
  • Para los balanceadores de cargas de red de transferencia interno, PROTOCOL es TCP o UDP, lo cual coincide con el protocolo del servicio de backend del balanceador de cargas. Para los balanceadores de cargas de aplicaciones internos regionales y los balanceadores de cargas de red del proxy internos regionales, el protocolo debe ser TCP.
  • Para los balanceadores de cargas de red de transferencia internos, PORTS es un arreglo de hasta cinco puertos por número o la palabra ALL. Para los balanceadores de cargas de aplicaciones internos regionales y los balanceadores de cargas de red del proxy internos regionales, puedes hacer referencia a exactamente un puerto de 1 a 65535. Consulta las especificaciones de puertos en los conceptos de reglas de reenvío para obtener más información.
  • SERVICE_LABEL es la etiqueta de servicio que elegiste. Esta debe seguir las convenciones de nombres.

Visualiza las etiquetas de servicio

Console

Puede ver el nombre de DNS interno de Compute Engine (creado a partir de la etiqueta de servicio) para cada regla de reenvío interna de un balanceador de cargas interno:

  1. En la Google Cloud consola, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Haz clic en el nombre del balanceador de cargas interno para ver su página de detalles.s

  3. Las reglas de reenvío internas asignadas al balanceador de cargas se enumeran en la sección Frontend. En la columna nombre de DNS, se muestra el nombre de DNS interno de Compute Engine que se asigna a cada regla de reenvío. La etiqueta de servicio es la primera parte de ese nombre (antes del primer punto). Si no se muestra ningún nombre, la regla de reenvío no tiene una etiqueta de servicio definida.

gcloud

  1. Enumera las reglas de reenvío en tu proyecto que usan los balanceadores de cargas de red de transferencia internos o los balanceadores de cargas de aplicaciones internos regionales. Ubica las que necesites y anota el nombre y la región para el siguiente paso.

    gcloud compute forwarding-rules list \
        --filter="loadBalancingScheme=SCHEME"
    

    El valor de SCHEME depende de las reglas de reenvío que debes enumerar:

    • Para los balanceadores de cargas de red de transferencia internos, usa INTERNAL.
    • Para los balanceadores de cargas de aplicaciones internos regionales y los balanceadores de cargas de red del proxy internos regionales, usa INTERNAL_MANAGED.
  2. Describe la regla de reenvío y reemplaza FORWARDING_RULE_NAME por su nombre y REGION por su región:

    gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \
        --region=REGION \
        --format="get(serviceLabel)"
    

api

Visualiza la regla de reenvío y la etiqueta de servicio con el método forwardingRules.get

La respuesta a la solicitud a la API incluye la etiqueta de servicio (serviceLabel) y el nombre de DNS interno de Compute Engine (serviceName).

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules/FORWARDING_RULE_NAME

Respuesta del balanceador de cargas de red de transferencia interno:

{
  ...
  "serviceLabel": "SERVICE_LABEL",
  "serviceName": "SERVICE_LABEL.FORWARDING_RULE_NAME.il4.REGION.lb.PROJECT.internal",
  ...
}

Respuesta del balanceador de cargas de red del proxy interno regional y del balanceador de cargas de aplicaciones interno regional:

{
  ...
  "serviceLabel": "SERVICE_LABEL",
  "serviceName": "SERVICE_LABEL.FORWARDING_RULE_NAME.il7.REGION.lb.PROJECT.internal",
  ...
}

Ejemplo

En el siguiente procedimiento, se muestra cómo reemplazar una regla de reenvío por una que tenga una etiqueta de servicio. Este procedimiento funciona para todos los balanceadores de cargas compatibles.

Si aún no creaste una regla de reenvío para tu balanceador de cargas interno, omite este ejemplo y consulta Crea una regla de reenvío con una etiqueta de servicio en su lugar.

  1. Describe la regla de reenvío existente del balanceador de cargas y anota la dirección IP interna de la regla de reenvío:

    gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \
        --region=REGION \
        --format="get(IPAddress)"
    
  2. Borra la regla de reenvío:

    gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
        --region=REGION
    
  3. Crea una regla de reenvío de reemplazo con el mismo nombre y la misma dirección IP interna con una etiqueta de servicio. Consulta Crea una regla de reenvío con una etiqueta de servicio para obtener instrucciones.

¿Qué sigue?