Bilanciamento del carico interno e nomi DNS

Un record di indirizzo DNS, noto come record A, viene utilizzato per mappare un nome DNS a un indirizzo IP. Quando crei la regola di forwarding per un bilanciatore del carico interno, puoi facoltativamente designare un'etichetta di servizio in modo che Google Cloud crei un nome DNS interno di Compute Engine univoco per il bilanciatore del carico. Questo nome DNS interno viene creato a partire dall'ID progetto, dal nome della regola di forwarding e da un'etichetta di servizio specificata da te.

Specifiche

  • Questa funzionalità è supportata dalle regole di forwarding per i seguenti bilanciatori del carico:

  • Per i dettagli sul formato del nome DNS creato da Google Cloud per il bilanciatore del carico, consulta Formato del record DNS. Poiché il nome DNS contiene il nome della regola di forwarding, ogni nome DNS è univoco, anche se utilizzi la stessa etichetta di servizio per più regole di forwarding.

  • A meno che non sia configurato un server dei nomi alternativo, le VM client in qualsiasi regione nello stesso progetto e nella stessa rete VPC possono eseguire ricerche DNS per il nome DNS interno del bilanciatore del carico. Per accedere al bilanciatore del carico, le VM client devono trovarsi nella stessa regione, a meno che l'accesso globale non sia disponibile e abilitato. Se abiliti l'accesso globale, un client in qualsiasi regione può accedere al bilanciatore del carico.

  • Puoi specificare un'etichetta di servizio solo quando crei una regola di forwarding. Non puoi aggiungere un'etichetta di servizio a una regola di forwarding esistente. Tuttavia, puoi sostituire una regola di forwarding esistente con una nuova regola di forwarding con un'etichetta di servizio. La sostituzione può utilizzare lo stesso indirizzo IP interno dell'originale se elimini prima la regola di forwarding originale.

  • I nomi DNS interni creati dalle etichette di servizio presentano le seguenti restrizioni:

    • Non viene creato alcun record inverso (PTR) corrispondente.
    • Ogni regola di forwarding può avere una sola etichetta di servizio.
    • A parte il nome dell'etichetta di servizio e della regola di forwarding, non puoi modificare nessun'altra parte del nome DNS interno. inclusi il formato e il nome di dominio (.internal).

    Se hai bisogno di nomi DNS più flessibili per il bilanciatore del carico interno, puoi creare record personalizzati in una zona privata gestita di Cloud DNS.

Formato del record DNS

Quando aggiungi un'etichetta di servizio a una regola di forwarding, Google Cloud crea un record A DNS interno di Compute Engine utilizzando uno dei seguenti formati:

  • Per i bilanciatori del carico di rete passthrough interni:

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

  • Per gli Application Load Balancer interni regionali:

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

SERVICE_LABEL è l'etichetta di servizio della regola di forwarding da te specificata. Deve avere il seguente formato:

  • Puoi utilizzare fino a 63 lettere minuscole (da a a z), numeri (da 0 a 9) o trattini (-).
  • L'etichetta del servizio deve iniziare con una lettera minuscola.
  • L'etichetta del servizio deve terminare con una lettera minuscola o un numero.

FORWARDING_RULE_NAME è il nome della regola di forwarding che stai creando.

REGION è la regione del bilanciatore del carico.

PROJECT_ID è il tuo ID progetto. Gli ID progetto nel formato organization:project-id vengono convertiti in project-id.organization. Ad esempio, se l'ID progetto è example.com:example-marketing-prod, Google Cloud utilizza example-marketing-prod.example.com.

Creazione di una regola di forwarding con un'etichetta di servizio

Questa procedura mostra come creare una regola di forwarding con un'etichetta di servizio per un bilanciatore del carico di rete passthrough interno o un bilanciatore del carico delle applicazioni interno.

Questa procedura è incentrata solo su come creare una regola di forwarding con un'etichetta di servizio. Le proprietà della configurazione backend del bilanciatore del carico e altre proprietà della configurazione frontend vengono omesse. Se non hai mai utilizzato i bilanciatori del carico di rete passthrough interni o gli Application Load Balancer interni, consulta queste pagine per alcuni esempi completi:

Console

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic su Crea bilanciatore del carico.
  3. Completa i passaggi della procedura guidata per creare un bilanciatore del carico di rete passthrough interno o un bilanciatore del carico delle applicazioni interno e fai clic su Configura.
  4. Specifica un nome per il bilanciatore del carico.
  5. Fai clic su Continua.
  6. Completa la Configurazione backend.
  7. Fai clic su Configurazione frontend. Completa la configurazione del frontend, specificando un'Etichetta di servizio in fondo alla sezione.

  8. Fai clic su Fine, poi su Esamina e finalizza.

gcloud

Per creare una regola di forwarding con un'etichetta di servizio per un bilanciatore del carico di rete passthrough interno:

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

Per creare una regola di forwarding con un'etichetta di servizio per un bilanciatore del carico HTTPS interno:

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=443 \
    --service-label=SERVICE_LABEL

Per creare una regola di forwarding con un'etichetta di servizio per un bilanciatore del carico HTTP interno:

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

Sostituisci i segnaposto con i valori appropriati:

  • FORWARDING_RULE_NAME è il nome della regola di forwarding del bilanciatore del carico.
  • REGION è la regione del bilanciatore del carico.
  • BACKEND_SERVICE_NAME è il nome del servizio di backend del bilanciatore del carico.
  • TARGET_PROXY_NAME è il nome del proxy HTTPS di destinazione (per un bilanciatore del carico HTTPS interno) o del proxy HTTP di destinazione (per un bilanciatore del carico HTTP interno).
  • NETWORK è il nome della rete VPC in cui viene creato il bilanciatore del carico.
  • SUBNET è il nome di una subnet nella rete VPC. La subnet deve trovarsi nella stessa regione del servizio di backend o del proxy di destinazione del bilanciatore del carico.
  • INTERNAL_IP è un indirizzo IP interno nell'intervallo IP principale della subnet scelta. Puoi omettere il flag --address per fare in modo che Google Cloud scelga un indirizzo IP disponibile per te.
  • Per i bilanciatori del carico di rete passthrough interni, PROTOCOL è TCP o UDP, corrispondente al protocollo del servizio di backend del bilanciatore del carico. Per gli Application Load Balancer interni, il protocollo deve essere TCP.
  • Per i bilanciatori del carico di rete passthrough interni, PORTS è un array di massimo cinque porte per numero o con la parola ALL. Per i bilanciatori del carico HTTPS interni, devi utilizzare 443 per la porta; per i bilanciatori del carico HTTP interni, puoi utilizzare 80 o 8080 per PORT. Per ulteriori dettagli, consulta le specifiche delle porte nei concetti relativi alle regole di forwarding.
  • SERVICE_LABEL è l'etichetta di servizio che preferisci. Deve rispettare le convenzioni di denominazione.

api

I seguenti esempi creano regole di forwarding utilizzando il metodo forwardingRules.insert

Per creare una regola di forwarding con un'etichetta di servizio per un bilanciatore del carico di rete passthrough interno:

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"
}

Per creare una regola di forwarding con un'etichetta di servizio per un bilanciatore del carico HTTPS interno:

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": 443,
  "serviceLabel": "SERVICE_LABEL"
}

Per creare una regola di forwarding con un'etichetta di servizio per un bilanciatore del carico HTTP interno:

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"
}

Sostituisci i segnaposto con i valori appropriati:

  • FORWARDING_RULE_NAME è il nome della regola di forwarding del bilanciatore del carico.
  • REGION è la regione del bilanciatore del carico.
  • BACKEND_SERVICE_NAME è il nome del servizio di backend del bilanciatore del carico di rete passthrough interno.
  • TARGET_PROXY_NAME è il nome del proxy HTTPS di destinazione (per un bilanciatore del carico HTTPS interno) o del proxy HTTP di destinazione (per un bilanciatore del carico HTTP interno).
  • NETWORK è il nome della rete VPC in cui viene creato il bilanciatore del carico.
  • SUBNET è il nome di una subnet nella rete VPC. La subnet deve trovarsi nella stessa regione del servizio di backend o del proxy di destinazione del bilanciatore del carico.
  • INTERNAL_IP è un indirizzo IP interno nell'intervallo IP principale della subnet scelta. Puoi omettere la chiave IPAddress per fare in modo che Google Cloud scelga un indirizzo IP disponibile per te.
  • Per i bilanciatori del carico di rete passthrough interni, PROTOCOL è TCP o UDP, corrispondente al protocollo del servizio di backend del bilanciatore del carico. Per gli Application Load Balancer interni, il protocollo deve essere TCP.
  • Per i bilanciatori del carico di rete passthrough interni, PORTS è un array di massimo cinque porte per numero o con la parola ALL. Per i bilanciatori del carico HTTPS interni, devi utilizzare 443 per la porta; per i bilanciatori del carico HTTP interni, puoi utilizzare 80 o 8080 per PORT. Per ulteriori dettagli, consulta le specifiche delle porte nei concetti relativi alle regole di forwarding.
  • SERVICE_LABEL è l'etichetta di servizio che preferisci. Deve rispettare le convenzioni di denominazione.

Visualizzazione delle etichette di servizio

Console

Puoi visualizzare il nome del DNS interno di Compute Engine (creato dall'etichetta di servizio) per ogni regola di forwarding interno di un bilanciatore del carico interno:

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome del bilanciatore del carico interno per visualizzarne la pagina dei dettagli.

  3. Le regole di forwarding interno assegnate al bilanciatore del carico sono elencate nella sezione Frontend. La colonna Nome DNS mostra il nome del DNS interno di Compute Engine assegnato a ogni regola di forwarding. L'etichetta di servizio è la prima parte del nome (prima del primo punto). Se non viene visualizzato alcun nome, per la regola di forwarding non è stata definita un'etichetta di servizio.

gcloud

  1. Elenca le regole di forwarding nel tuo progetto utilizzate dai bilanciatori del carico di rete passthrough interni o dagli Application Load Balancer interni. Individua quella che ti serve e prendi nota del nome e della regione per il passaggio successivo.

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

    Il valore di SCHEME dipende dalle regole di forwarding che devi elencare:

    • Per i bilanciatori del carico di rete passthrough interni, utilizza INTERNAL.
    • Per gli Application Load Balancer interni, utilizza INTERNAL_MANAGED.
  2. Descrivi la regola di forwarding, sostituendo FORWARDING_RULE_NAME con il nome e REGION con la regione:

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

api

Visualizza la regola di forwarding e l'etichetta del servizio con ilmetodo forwardingRules.get

La risposta alla richiesta API include l'etichetta di servizio (serviceLabel) e il nome DNS interno di Compute Engine (serviceName).

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

Risposta TCP/UDP:

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

Risposta HTTP(S):

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

Esempio

La procedura seguente illustra come sostituire una regola di forwarding con una con etichetta di servizio. Questa procedura funziona sia per i bilanciatori del carico di rete passthrough interni sia per gli Application Load Balancer interni.

Se non hai ancora creato una regola di forwarding per il bilanciatore del carico interno, salta questo esempio e consulta la sezione Creazione di una regola di forwarding con un'etichetta di servizio.

  1. Descrivi la regola di forwarding esistente del bilanciatore del carico, annotando l'indirizzo IP interno della regola di forwarding:

    gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \
        --region=REGION \
        --format="get(IPAddress)"
    
  2. Elimina la regola di forwarding:

    gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
        --region=REGION
    
  3. Crea una regola di forwarding sostitutiva con lo stesso nome e lo stesso indirizzo IP interno con un'etichetta di servizio. Per istruzioni, consulta Creazione di una regola di forwarding con un'etichetta di servizio.

Passaggi successivi