Utilizzare i controlli di integrità

Google Cloud fornisce meccanismi di controllo di integrità che determinano se le istanze di backend rispondono correttamente al traffico. Questo documento descrive come creare e utilizzare i controlli di integrità per i bilanciatori del carico e Cloud Service Mesh.

Questa pagina presuppone che tu abbia familiarità con i seguenti concetti:

Creazione dei controlli di integrità

Google Cloud ti consente di creare o selezionare un controllo di integrità quando completi la configurazione di backend del bilanciatore del carico nella console Google Cloud.

Puoi anche creare un controllo di integrità indipendentemente dalla configurazione del bilanciatore del carico nella console Google Cloud. Questa opzione è utile se devi prima creare il controllo di integrità o se devi utilizzare un controllo di integrità per più bilanciatori del carico. Puoi creare un controllo di integrità utilizzando la console Google Cloud, la CLI Google Cloud o le API REST.

Console

  1. Vai alla pagina Controlli di integrità nella console Google Cloud.
    Vai alla pagina Controlli di integrità
  2. Fai clic su Crea un controllo di integrità.
  3. Nella pagina Crea un controllo di integrità, fornisci le seguenti informazioni:
    • Nome: specifica un nome per il controllo di integrità.
    • Descrizione: se vuoi, fornisci una descrizione.
    • Ambito: seleziona un ambito, Globale o Regionale, a seconda del tipo di bilanciatore del carico.
      • Se hai selezionato Regionale, scegli una Regione dal menu a discesa.
    • Protocollo: scegli un protocollo di controllo di integrità.
    • Porta: specifica un numero di porta. Quando crei un controllo di integrità nella console Google Cloud, devi specificare la porta utilizzando un numero di porta.
    • Protocollo proxy: se vuoi, puoi aggiungere un'intestazione proxy alle richieste effettuate dai sistemi di probe del controllo di integrità.
    • Percorso della richiesta e risposta: per i protocolli HTTP, HTTPS e HTTP2, se vuoi puoi fornire un percorso URL da contattare per i sistemi di controllo di integrità#39;integrità. Per ulteriori informazioni, consulta Flag aggiuntivi per i controlli di stato HTTP, HTTPS e HTTP/2.
    • Richiesta e Risposta: per i protocolli TCP e SSL, puoi specificare una stringa di testo ASCII da inviare e la stringa di risposta di testo prevista. Per ulteriori informazioni, consulta Flag aggiuntivi per i controlli di integrità SSL e TCP.
    • Intervallo di controllo: definisci il periodo di tempo dall'inizio di un esame all'inizio di quello successivo.
    • Timeout: definisci il tempo che Google Cloud deve attendere per una risposta a un controllo. Il valore deve essere minore o uguale all'intervallo di controllo.
    • Soglia di stato integro: definisci il numero di probe sequenziali che devono essere riusciti affinché l'istanza VM sia considerata integra.
    • Soglia di stato non integro: definisci il numero di sondaggi sequenziali che devono non riuscire affinché l'istanza VM sia considerata non integra.
  4. Fai clic su Crea.

gcloud

  • Per creare un controllo di integrità globale, utilizza il comando compute health-checks create appropriato:

    gcloud compute health-checks create PROTOCOL NAME \
        --global \
        --description=DESCRIPTION \
        --check-interval=CHECK_INTERVAL \
        --timeout=TIMEOUT \
        --healthy-threshold=HEALTHY_THRESHOLD \
        --unhealthy-threshold=UNHEALTHY_THRESHOLD \
        PORT_SPECIFICATION \
        ADDITIONAL_FLAGS
    
  • Per creare un controllo di integrità a livello di regione, utilizza il comando compute health-checks create appropriato:

    gcloud compute health-checks create PROTOCOL NAME \
        --region=REGION \
        --description=DESCRIPTION \
        --check-interval=CHECK_INTERVAL \
        --timeout=TIMEOUT \
        --healthy-threshold=HEALTHY_THRESHOLD \
        --unhealthy-threshold=UNHEALTHY_THRESHOLD \
        PORT_SPECIFICATION \
        ADDITIONAL_FLAGS
    

Sostituisci quanto segue:

  • PROTOCOL definisce il protocollo utilizzato per il controllo di integrità. Le opzioni valide sono grpc, http, https, http2, ssl e tcp.
  • NAME è il nome del controllo di integrità. All'interno di un determinato progetto: ogni controllo di integrità globale deve avere un nome univoco e i controlli di integrità regionali devono avere nomi univoci all'interno di una determinata regione.
  • REGION: la regione del controllo di integrità. Per i bilanciatori del carico regionali, la regione del controllo di integrità deve corrispondere a quella del servizio di backend.
  • DESCRIPTION è una descrizione facoltativa.
  • CHECK_INTERVAL è il tempo che intercorre dall'inizio della connessione di un sistema di probe di controllo di integrità all'inizio del successivo. Le unità di misura sono in secondi. Se omesso, Google Cloud utilizza un valore di 5s (5 secondi).
  • TIMEOUT è il tempo che Google Cloud aspetta per una risposta a una sonda. Il valore di TIMEOUT deve essere minore o uguale a CHECK_INTERVAL. Le unità sono secondi. Se omesso, Google Cloud utilizza un valore di 5s (5 secondi).
  • HEALTHY_THRESHOLD e UNHEALTHY_THRESHOLD specificano il numero di verifiche sequenziali che devono essere riuscite o non riuscite affinché l'istanza VM sia considerata integra o non integra. Se uno dei due viene omesso, Google Cloud utilizza una soglia predefinita di 2.
  • PORT_SPECIFICATION: definisce la specifica della porta utilizzando uno dei flag di specifica della porta.
  • ADDITIONAL_FLAGS sono altri flag per specificare le porte e le opzioni specifiche per PROTOCOL. Consulta Indicatori aggiuntivi per i controlli di integrità HTTP, HTTPS e HTTP/2, Indicatori aggiuntivi per i controlli di integrità SSL e TCP o Indicatore aggiuntivo per i controlli di integrità gRPC.

Terraform

Per creare un controllo di integrità globale, utilizza la risorsa google_compute_health_check.

resource "google_compute_health_check" "health_check_tcp_with_logging" {
  provider = google-beta

  name = "health-check-tcp"

  timeout_sec        = 1
  check_interval_sec = 1

  tcp_health_check {
    port = "22"
  }

  log_config {
    enable = true
  }
}

Per creare un controllo di integrità a livello di regione, utilizza la risorsa google_compute_region_health_check.

resource "google_compute_region_health_check" "default" {
  name               = "tcp-health-check-region-west"
  timeout_sec        = 5
  check_interval_sec = 5
  tcp_health_check {
    port = "80"
  }
  region = "us-west1"
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

API

Modificare i controlli di integrità

Non puoi convertire un controllo di integrità in un controllo di integrità legacy (o viceversa) modificandolo. Inoltre, non puoi modificare il nome o l'ambito di un controllo di integrità (ad esempio da globale a regionale).

Console

  1. Vai alla pagina Controlli di integrità nella console Google Cloud.
    Vai alla pagina Controlli di integrità
  2. Fai clic su un controllo di integrità per visualizzarne i dettagli.
  3. Se devi modificare il controllo di integrità, fai clic su Modifica e poi:
    • Apporta le modifiche necessarie ai parametri.
    • Fai clic su Salva.

gcloud

  1. Identifica il nome e l'ambito del controllo di integrità. Per le istruzioni, consulta Elenco dei controlli di stato.

  2. Ad eccezione del nome, del protocollo e dell'ambito di un controllo di integrità, puoi modificare uno qualsiasi dei flag comuni, dei flag di specifica della porta e di altri flag aggiuntivi. Per modificare un controllo di integrità esistente, utilizza il comando compute health-checks update appropriato. Per i flag omessi, le impostazioni predefinite vengono conservate.

    • Esempio di modifica di un controllo di integrità globale: il seguente comando modifica un controllo di integrità HTTP globale denominato hc-http-port-80 modificando l'intervallo di controllo, il timeout e il percorso della richiesta:

      gcloud compute health-checks update http hc-http-port-80 \
          --global \
          --check-interval=20s \
          --timeout=15s \
          --request-path="/health"
      
    • Esempio di modifica di un controllo di integrità a livello di regione: il seguente comando modifica un controllo di integrità TCP a livello di regione in us-west1 denominato hc-west1-tcp-ldap modificando la relativa specifica della porta:

      gcloud compute health-checks update tcp hc-west1-tcp-ldap \
          --region=us-west1 \
          --port=631
      

API

  1. Identifica il nome e l'ambito del controllo di integrità. Per le istruzioni, consulta la sezione Controlli di salute delle schede.

  2. Ad eccezione del nome, del protocollo e dell'ambito di un controllo di integrità, puoi modificare qualsiasi flag comune, flag di specifica della porta e altri flag aggiuntivi con queste chiamate API. Utilizza le chiamate API patch per conservare le impostazioni preconfigurate che non sono impostate esplicitamente nella richiesta.

Elenca controlli di integrità

Console

  1. Vai alla pagina Controlli di integrità nella console Google Cloud.
    Vai alla pagina Controlli di integrità
  2. Fai clic su un controllo di integrità per visualizzarne i dettagli.

gcloud

Per elencare i controlli di integrità, utilizza il comando compute health-checks list:

  • Per elencare i controlli di integrità globali:

    gcloud compute health-checks list \
        --global
    
  • Per elencare i controlli di integrità regionali: sostituisci REGION_LIST con un elenco delimitato da virgole delle regioni Google Cloud su cui eseguire query.

    gcloud compute health-checks list \
        --regions=REGION_LIST
    

Dopo aver conosciuto il nome e l'ambito di un controllo di integrità, utilizza il comando compute health-checks describe per visualizzarne la configurazione corrente.

  • Per descrivere un controllo di integrità globale, sostituisci NAME con il relativo nome.

    gcloud compute health-checks describe NAME \
        --global
    
  • Per descrivere un controllo di integrità a livello di regione, sostituisci NAME con il relativo nome e REGION con la relativa regione.

    gcloud compute health-checks describe NAME \
        --region=REGION
    

API

Per elencare i controlli di integrità, utilizza queste chiamate API:

Per descrivere la configurazione corrente di un controllo di integrità, utilizza:

Flag aggiuntivi

Questa sezione descrive i flag aggiuntivi che puoi utilizzare per creare o modificare un controllo di integrità. Alcuni flag, come la specifica della porta, devono essere impostati utilizzandogcloud o l'API.

Flag di specifica della porta

Se crei un controllo di integrità utilizzando l'API o l'interfaccia a riga di Google Cloud CLI, hai due opzioni per specificare la porta del controllo di integrità. La tabella riportata di seguito mostra le opzioni di specifica della porta per combinazioni valide di bilanciatori del carico e backend. Il termine gruppo di istanze si riferisce a gruppi di istanze non gestite, gruppi di istanze gestite a livello di zona o gruppi di istanze gestite a livello di regione.

Ogni controllo di integrità può utilizzare un solo tipo di specifica della porta.

Prodotto Tipo di backend Opzioni di specifica della porta
Bilanciatore del carico di rete passthrough esterno Gruppi di istanze e NEG supportati

--port: specifica una porta TCP in base al numero, da 1 a 65535

Il flag --use-serving-port viene ignorato per un controllo di integrità associato a un bilanciatore del carico di rete passthrough interno perché i servizi di backend per questo bilanciatore del carico non si abbonano a porte denominate. Questo perché si tratta di bilanciatori del carico passthrough che inviano i pacchetti direttamente ai backend anziché creare nuove connessioni dal bilanciatore del carico al backend.

Pool di destinazione Controlli di integrità precedenti che supportano la specifica del numero di porta (--port).
Bilanciatore del carico di rete passthrough interno Gruppi di istanze e NEG supportati

--port: specifica una porta TCP in base al numero, da 1 a 65535

Il flag --use-serving-port viene ignorato per un controllo di integrità associato a un bilanciatore del carico di rete passthrough interno perché i servizi di backend per questo bilanciatore del carico non si abbonano a porte denominate. Questo perché si tratta di bilanciatori del carico passthrough che inviano i pacchetti direttamente ai backend anziché creare nuove connessioni dal bilanciatore del carico al backend.

Bilanciatore del carico delle applicazioni esterno globale

Bilanciatore del carico delle applicazioni classico

Bilanciatore del carico delle applicazioni esterno regionale

Bilanciatore del carico delle applicazioni interno tra regioni

Bilanciatore del carico delle applicazioni interno regionale

Bilanciatore del carico di rete proxy esterno globale

Bilanciatore del carico di rete proxy classico

Bilanciatore del carico di rete proxy esterno regionale

Bilanciatore del carico di rete proxy interno tra regioni

Bilanciatore del carico di rete proxy interno regionale

Cloud Service Mesh
NEG supportati
  • --port: specifica una porta TCP in base al numero, da 1 a 65535
  • --use-serving-port: utilizza la porta di ogni endpoint nel gruppo di endpoint di rete.
Gruppi di istanze
  • --port: specifica una porta TCP in base al numero, da 1 a 65535
  • --use-serving-port: utilizza la stessa porta denominata del gruppo di istanze a cui si iscrive il servizio di backend.

Se ometti la specifica della porta durante la creazione del controllo di integrità, Google Cloud utilizza le seguenti impostazioni predefinite:

  • Se il protocollo del controllo di integrità è TCP o HTTP, viene utilizzato --port=80.
  • Se il protocollo del controllo di integrità è SSL, HTTPS o HTTP2, viene utilizzato --port=443.
  • Se il protocollo del controllo di integrità è GRPC, non è prevista alcuna impostazione predefinita; devi includere la specifica della porta.

Flag aggiuntivi per i controlli di integrità HTTP, HTTPS e HTTP/2

Oltre ai flag e alla specifica della porta comuni, puoi utilizzare i seguenti flag facoltativi per i controlli di integrità HTTP, HTTPS e HTTP/2. Questo esempio crea un controllo di integrità HTTP denominato hc-http-port-80 che utilizza la porta 80 con criteri di intervallo, timeout e soglia di integrità predefiniti.

gcloud compute health-checks create HTTP_PROTOCOL hc-http-port-80 \
    COMMON_FLAGS \
    PORT_SPECIFICATION \
    --host=HOST \
    --proxy-header=PROXY_HEADER \
    --request-path=REQUEST_PATH \
    --response=RESPONSE
  • HTTP_PROTOCOL: può essere http (HTTP/1.1 senza TLS), https (HTTP/1.1 con TLS) o http2 (HTTP/2 con TLS).
  • COMMON_FLAGS: definisce i flag comuni. Consulta la procedura di creazione.
  • PORT_SPECIFICATION: definisce la specifica della porta utilizzando uno dei flag di specifica della porta.
  • HOST ti consente di fornire un'intestazione HTTP Host. Se omesso, viene utilizzato l'indirizzo IP della regola di forwarding del bilanciatore del carico.
  • PROXY_HEADER deve essere NONE o PROXY_V1. Se omesso, Google Cloud utilizza NONE. Il valore PROXY_V1 aggiunge l'intestazione PROXY UNKNOWN\r\n.
  • REQUEST_PATH specifica il percorso dell'URL utilizzato da Google Cloud quando invia richieste di controllo di integrità. Se omesso, la richiesta di controllo di integrità viene inviata a /.
  • RESPONSE definisce una risposta prevista facoltativa. Le stringhe di risposta devono rispettare le seguenti regole:
    • La stringa di risposta deve essere composta da lettere, numeri e spazi ASCII.
    • La stringa di risposta può contenere fino a 1024 caratteri.
    • La corrispondenza con caratteri jolly non è supportata.
    • Il controllo basato sui contenuti non supporta l'inversione; ad esempio, gli operatori come ! in HAProxy non sono supportati.

Se Google Cloud trova la stringa di risposta prevista ovunque nei primi 1024 byte del corpo della risposta ricevuta e se lo stato HTTP è 200 (OK), la prova è considerata riuscita.

I flag --request-path e --response modificano i criteri di successo per il probe controllo di integrità.

Flag aggiuntivi per i controlli di integrità SSL e TCP

Oltre ai flag e alla specifica della porta comuni, puoi utilizzare i seguenti flag facoltativi per i controlli di integrità SSL e TCP. Questo esempio crea un controllo di integrità TCP denominato hc-tcp-3268 che utilizza la porta 3268 con intervallo, timeout e criteri di soglia di integrità predefiniti.

gcloud compute health-checks create tcp hc-tcp-3268 \
    COMMON_FLAGS \
    PORT_SPECIFICATION \
    --proxy-header=PROXY_HEADER \
    --request=REQUEST_STRING \
    --response=RESPONSE_STRING
  • Il protocollo può essere tcp (in questo esempio) o ssl.
  • COMMON_FLAGS: definisce i flag comuni. Consulta la procedura di creazione.
  • PORT_SPECIFICATION: definisce la specifica della porta utilizzando uno dei flag di specifica della porta.
  • PROXY_HEADER deve essere NONE o PROXY_V1. Se omesso, Google Cloud utilizza NONE. Il valore PROXY_V1 aggiunge l'intestazione PROXY UNKNOWN\r\n.
  • REQUEST_STRING: puoi fornire una stringa di massimo 1024 caratteri ASCII da inviare dopo aver stabilito la sessione TCP o SSL.
  • RESPONSE_STRING: puoi fornire una stringa di massimo 1024 caratteri ASCII per la risposta prevista.

I flag --request e --response modificano i criteri di successo per il probe controllo di integrità. Se utilizzi il flag --response da solo o in combinazione con il flag --request, la risposta restituita deve corrispondere esattamente alla stringa di risposta prevista.

Flag aggiuntivo per i controlli di integrità gRPC

Il server gRPC di backend deve implementare il servizio di integrità gRPC come descritto nel protocollo di controllo di integrità gRPC. Google Cloud invia un messaggio HealthCheckRequest ai tuoi backend chiamando il metodo Check del servizio di monitoraggio sul backend. Il parametro service nella richiesta viene impostato su una stringa vuota, a meno che non sia specificato un nome di servizio gRPC.

Un controllo di integrità gRPC può controllare lo stato di un servizio gRPC. Puoi includere una stringa con un massimo di 1024 caratteri ASCII, ovvero il nome di un determinato servizio gRPC in esecuzione su una VM o un NEG di backend. Per farlo, utilizza il seguente flag facoltativo per i controlli di integrità gRPC:

--grpc-service-name=GRPC_SERVICE_NAME

Ad esempio, potresti avere i seguenti servizi e stati registrati dal server di backend con il servizio gRPC Health del tuo backend.

  • MyPackage.ServiceA con lo stato di pubblicazione SERVING
  • MyPackage.ServiceB con lo stato di pubblicazione NOT_SERVING
  • Nome del servizio vuoto con lo stato di pubblicazione NOT_SERVING

Se crei un controllo di integrità per MyPackage.ServiceA, come segue, la sonda del controllo di integrità restituisce HEALTHY, perché lo stato del servizio è SERVING.

gcloud beta compute health-checks create grpc MyGrpcHealthCheckServiceA \
    --grpc-service-name=MyPackage.ServiceA

Se crei un controllo di integrità per MyPackage.ServiceB, la sonda del controllo di integrità restituisce UNHEALTHY perché lo stato del servizio è NOT_SERVING.

Se crei un controllo di integrità per MyPackage.ServiceC, che non è registrato con il servizio gRPC Health, il probe del controllo di integrità restituisce lo stato gRPC NOT_FOUND, che è equivalente a UNHEALTHY.

Se crei un controllo di integrità per il nome del servizio vuoto, il probe del controllo di integrità restituisce lo stato UNHEALTHY, perché il nome del servizio vuoto è registrato con lo stato UNHEALTHY.NOT_SERVING

Controlli di integrità legacy

Questa sezione descrive come creare, modificare ed elencare i controlli di integrità HTTP e HTTPS legacy. Non puoi convertire un controllo di integrità legacy in un controllo di integrità e non puoi convertire un controllo di integrità in un controllo di integrità legacy.

Per scoprire quali tipi di bilanciatori del carico supportano i controlli di integrità precedenti, consulta la guida al bilanciatore del carico.

Creare controlli di integrità legacy

Console

Sebbene la pagina Controlli di integrità della console Google Cloud elenchi e ti consenta di modificare sia i controlli di integrità sia quelli legacy, non puoi creare un nuovo controllo di integrità legacy dalla pagina Controlli di integrità della console Google Cloud.

Puoi creare un controllo di integrità precedente nella console Google Cloud solo durante la creazione di un bilanciatore del carico di rete passthrough esterno basato su pool di destinazione. Per creare il controllo di integrità legacy da solo, utilizza le istruzioni gcloud o dell'API di questa sezione.

gcloud

Per creare un controllo di integrità legacy, utilizza il comando compute http-health-checks create:

gcloud compute LEGACY_CHECK_TYPE create NAME \
    --description=DESCRIPTION \
    --check-interval=CHECK_INTERVAL \
    --timeout=TIMEOUT \
    --healthy-threshold=HEALTHY_THRESHOLD \
    --unhealthy-threshold=UNHEALTHY_THRESHOLD \
    --host=HOST \
    --port=PORT \
    --request-path=REQUEST_PATH

Sostituisci quanto segue:

  • LEGACY_CHECK_TYPE è http-health-checks per un controllo di integrità HTTP legacy o https-health-checks per un controllo di integrità HTTPS legacy. Se stai creando il controllo di integrità legacy per un bilanciatore del carico di rete passthrough esterno basato su pool di destinazione, devi utilizzare http-health-checks.
  • NAME è il nome del controllo di integrità legacy. All'interno di un determinato progetto, ogni controllo di integrità precedente deve avere un nome univoco.
  • DESCRIPTION è una descrizione facoltativa.
  • CHECK_INTERVAL è il tempo che intercorre dall'inizio di un esame all'inizio di quello successivo. Le unità di misura sono in secondi. Se omesso, Google Cloud utilizza un valore di 5s (5 secondi).
  • TIMEOUT è il tempo che Google Cloud attenderà per una risposta a una sonda. Il valore di TIMEOUT deve essere inferiore o uguale a CHECK_INTERVAL. Le unità di misura sono in secondi. Se viene omesso, Google Cloud utilizza un valore di 5s (5 secondi).
  • HEALTHY_THRESHOLD e UNHEALTHY_THRESHOLD specificano il numero di sondaggi sequenziali che devono riuscire o non riuscire affinché un'istanza VM sia considerata sana o non sana. Se uno dei due viene omesso, Google Cloud utilizza una soglia predefinita di 2.
  • HOST ti consente di fornire un'intestazione HTTP dell'host. Se omesso, viene utilizzato l'indirizzo IP della regola di forwarding del bilanciatore del carico.
  • PORT ti consente di fornire un numero di porta. Se omesso, Google Cloud utilizza 80.
  • REQUEST_PATH specifica il percorso dell'URL utilizzato da Google Cloud per inviare le richieste di controllo di integrità. Se omesso, la richiesta di controllo di integrità viene inviata a /.

API

Terraform

Modificare i controlli di integrità legacy

Console

  1. Vai alla pagina Controlli di integrità nella console Google Cloud.
    Vai alla pagina Controlli di integrità
  2. Fai clic su un controllo di integrità per visualizzarne i dettagli.
  3. Fai clic su Modifica , apporta le modifiche e poi fai clic su Salva.

gcloud

  • Per modificare un controllo di integrità HTTP legacy, utilizza il comando compute http-health-checks update, sostituendo NAME con il relativo nome. Quando modifichi un controllo di integrità precedente con gcloud, le impostazioni predefinite per i flag omessi vengono conservate. I OTHER_OPTIONS sono le opzioni descritte nella sezione sulla creazione di un controllo di integrità legacy.

    gcloud compute http-health-checks update NAME \
      OTHER_OPTIONS
    
  • Per modificare un controllo di integrità HTTPS precedente, utilizza il comando compute https-health-checks update, sostituendo NAME con il relativo nome. Quando modifichi un controllo di integrità precedente con gcloud, le impostazioni predefinite per i flag omessi vengono conservate. I OTHER_OPTIONS sono le opzioni descritte nella sezione sulla creazione di un controllo di integrità legacy.

    gcloud compute https-health-checks update NAME \
      OTHER_OPTIONS
    

API

A parte il nome e il tipo di un controllo di integrità legacy, puoi modificare qualsiasi flag utilizzato per la sua creazione. Le chiamate API patch mantengono le impostazioni predefinite che non sono impostate esplicitamente nella richiesta di patch.

Elenco dei controlli di integrità legacy

Console

  1. Vai alla pagina Controlli di integrità nella console Google Cloud.
    Vai alla pagina Controlli di integrità
  2. Fai clic su un controllo di integrità precedente per visualizzarne i dettagli.

gcloud

  1. Per elencare i controlli di integrità HTTP precedenti, utilizza il comando compute http-health-checks list:

    gcloud compute http-health-checks list
    

    Per elencare i controlli di integrità HTTPS legacy, utilizza il comando compute https-health-checks list:

    gcloud compute https-health-checks list
    
  2. Per descrivere un controllo di integrità HTTP legacy, utilizza il comando compute http-health-checks describe, sostituendo NAME con il relativo nome.

    gcloud compute http-health-checks describe NAME
    

    Per descrivere un controllo di integrità HTTPS precedente, utilizza il comando compute https-health-checks describe, sostituendo NAME con il relativo nome.

    gcloud compute https-health-checks describe NAME
    

API

  1. Per elencare i controlli di integrità legacy:

  2. Per descrivere un controllo di integrità legacy:

Crea le regole firewall richieste

Devi creare regole firewall in entrata applicabili a tutte le VM bilanciate in modo da consentire il traffico proveniente dagli intervalli IP dei probe di controllo di integrità. L'esempio seguente crea una regola firewall applicabile alle istanze VM identificate da un tag target specifico.

Questo esempio consente tutto il traffico TCP dai sistemi di controllo di integrità di Google Cloud alle tue istanze VM. Il traffico TCP include il traffico SSL, HTTP, HTTPS e HTTP/2. Se preferisci, puoi specificare le porte insieme al protocollo TCP. Tuttavia, se specifichi le porte, le regole del firewall potrebbero diventare specifiche per un determinato controllo di integrità. Se utilizzi tcp:80 per il protocollo e la porta, viene consentito il traffico TCP sulla porta 80, pertanto Google Cloud potrebbe contattare le tue VM utilizzando HTTP sulla porta 80, ma non potrebbe farlo utilizzando HTTPS sulla porta 443.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri firewall.
    Vai a Criteri firewall
  2. Fai clic su Crea regola firewall.
  3. Nella pagina Crea una regola firewall, fornisci le seguenti informazioni:
    • Nome: specifica un nome per la regola. Per questo esempio, utilizza fw-allow-health-checks.
    • Rete: scegli una rete VPC.
    • Priorità: inserisci un numero per la priorità. I numeri più bassi hanno priorità più elevate. Assicurati che la regola firewall abbia una priorità superiore rispetto alle altre regole che potrebbero negare il traffico in entrata.
    • Direzione del traffico: scegli in entrata.
    • Azione in caso di corrispondenza: scegli Consenti.
    • Target: scegli Tag di destinazione specificati e inserisci i tag nel campo Tag di destinazione. Per questo esempio, utilizza allow-health-checks.
    • Filtro di origine: scegli Intervalli IP.
    • Intervalli IP di origine: inserisci l'intervallo IP di origine in base al tipo di bilanciatore del carico, al tipo di traffico e al tipo di controllo di integrità. Consulta Intervalli IP e regole firewall del probe.
    • Protocolli e porte consentiti: utilizza tcp e la porta configurata nel controllo di integrità. TCP è il protocollo di base per tutti i protocolli di controllo di integrità.
    • Fai clic su Crea.
  4. Aggiungi il tag di rete a ogni istanza sottoposta a bilanciamento del carico in modo che venga applicata questa nuova regola firewall di ingresso. Questo esempio utilizza allow-health-checks per il tag della rete.

gcloud

  1. Utilizza il seguente comando gcloud per creare una regola firewall denominata fw-allow-health-checks che consenta le connessioni TCP in entrata, provenienti da sistemi di controllo di integrità di Google Cloud, alle istanze nella rete VPC con il tag allow-health-checks. A seconda del tipo di bilanciatore del carico, per il traffico IPv6 verso i backend è supportato un insieme diverso di intervalli IP di probe e regole firewall.

    Sostituisci NETWORK_NAME con il nome della rete VPC e PORT con le porte utilizzate dal bilanciatore del carico.

    gcloud compute firewall-rules create fw-allow-health-checks \
        --network=NETWORK_NAME \
        --action=ALLOW \
        --direction=INGRESS \
        --source-ranges=SOURCE_IP_RANGE \
        --target-tags=allow-health-checks \
        --rules=tcp:PORT

    Il valore di SOURCE_IP_RANGE dipende dal tipo di bilanciatore del carico, dal tipo di traffico e dal tipo di controllo di integrità. Consulta Intervalli IP e regole firewall del probe.

  2. Aggiungi il tag di rete a ogni istanza sottoposta a bilanciamento del carico in modo che venga applicata questa nuova regola firewall di ingresso. Questo esempio utilizza allow-health-checks per il tag della rete.

Per ulteriori dettagli, consulta la documentazione sulle regole firewall di gcloud e la documentazione dell'API.

Documentazione correlata:

Associare i controlli di integrità ai bilanciatori del carico

Se non l'hai ancora fatto, consulta la Panoramica dei controlli di integrità: selezionare un controllo di integrità.

Per associare un controllo di integrità a un nuovo bilanciatore del carico, consulta la guida alla configurazione per il rispettivo bilanciatore del carico. Questa sezione descrive come associare un controllo di integrità al servizio di backend di un bilanciatore del carico esistente.

Questa sezione presuppone che tu abbia già:

Console

Per associare un controllo di integrità a un bilanciatore del carico esistente:

  1. Vai alla pagina Bilanciamento del carico nella console Google Cloud.
    Vai alla pagina Bilanciamento del carico
  2. Fai clic su un bilanciatore del carico per visualizzarne i dettagli.
  3. Fai clic su Modifica e poi su Configurazione backend.
  4. Scegli un controllo di integrità dal menu Controllo di integrità.
  5. Fai clic su Aggiorna.

gcloud

Per associare un controllo di integrità a un servizio di backend esistente, segui questi passaggi.

  1. Identifica il nome e l'ambito del servizio di backend. I bilanciatori del carico di rete passthrough e proxy hanno un solo servizio di backend per bilanciatore del carico. I bilanciatori del carico delle applicazioni hanno uno o più servizi di backend associati a una singola mappa URL.

    • Per elencare i servizi di backend per i bilanciatori del carico di rete passthrough interni, esegui il seguente comando.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=INTERNAL"
      
    • Per elencare i servizi di backend per i bilanciatori del carico di rete passthrough esterni, esegui il seguente comando.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=EXTERNAL"
      
    • Per elencare i servizi di backend per i bilanciatori del carico di rete proxy esterno globale, esegui il seguente comando.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=EXTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Per elencare i servizi di backend per i bilanciatori del carico di rete proxy classici, esegui il seguente comando.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=EXTERNAL" \
          --filter="protocol=(SSL,TCP)"
      
    • Per elencare i servizi di backend per i bilanciatori del carico di rete proxy interni tra regioni, esegui il seguente comando.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=INTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Per elencare i servizi di backend per i bilanciatori del carico di rete proxy esterni regionali, esegui il seguente comando.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=EXTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Per elencare i servizi di backend per i bilanciatori del carico di rete proxy interni a livello di regione, esegui il seguente comando.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=INTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Per identificare i servizi di backend per i bilanciatori del carico delle applicazioni esterni globali, i bilanciatori del carico delle applicazioni classici e i bilanciatori del carico delle applicazioni interni tra regioni, identifica prima una mappa URL e poi descrivila. Le mappe URL e i servizi di backend per questi bilanciatori del carico sono sempre globali, indipendentemente dal livello di servizio di rete. Sostituisci URL_MAP_NAME con il nome della mappa di URL. I servizi di backend utilizzati dal bilanciatore del carico sono elencati nella risposta.

      gcloud compute url-maps list \
          --global
      
      gcloud compute url-maps describe URL_MAP_NAME \
          --global
      
    • Per identificare i servizi di backend per un bilanciatore del carico delle applicazioni esterno regionale o un bilanciatore del carico delle applicazioni interno regionale, identifica prima una mappa URL e poi descrivila. Sia le mappe URL sia i servizi di backend per questi bilanciatori del carico sono a livello di regione. Sostituisci REGION_LIST con un elenco separato da virgole delle regioni Google Cloud su cui eseguire query. Sostituisci URL_MAP_NAME con il nome della mappa di URL e REGION con la relativa regione. I servizi di backend utilizzati dal bilanciatore del carico sono elencati nella risposta.

      gcloud compute url-maps list \
          --regions=REGION_LIST
      
      gcloud compute url-maps describe URL_MAP_NAME \
          --region=REGION
      
  2. Identifica un controllo di integrità. Consulta Controlli di integrità delle schede.

  3. Associa un controllo di integrità al servizio di backend utilizzando il comando compute backend-services update. Ogni servizio di backend deve fare riferimento a un singolo controllo di integrità. Nei comandi seguenti, sostituisci BACKEND_SERVICE_NAME con il nome del servizio di backend, HEALTH_CHECK_NAME con il nome del controllo di integrità e, se necessario, REGION con la regione Google Cloud del servizio di backend, del controllo di integrità o di entrambi.

    • Per modificare il controllo di integrità di un bilanciatore del carico di rete passthrough interno: il servizio di backend di un bilanciatore del carico di rete passthrough interno è regionale. Può fare riferimento a un controllo di integrità globale o regionale. L'esempio seguente mostra un riferimento per il controllo di integrità regionale. Se utilizzi un controllo di integrità globale con il bilanciatore del carico di rete passthrough interno, utilizza --global-health-checks anziché --health-checks-region.

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --region=REGION \
          --health-checks=HEALTH_CHECK_NAME \
          --health-checks-region=REGION
      
    • Per modificare il controllo di integrità di un bilanciatore del carico di rete passthrough esterno basato su servizio di backend: il servizio di backend di un bilanciatore del carico di rete passthrough esterno è regionale. Può fare riferimento a un controllo di integrità a livello di regione.

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --region=REGION \
          --health-checks=HEALTH_CHECK_NAME \
          --health-checks-region=REGION
      
    • Per modificare il controllo di integrità di un bilanciatore del carico di rete con proxy esterno globale, bilanciatore del carico di rete con proxy classico, bilanciatore del carico delle applicazioni esterno globale, bilanciatore del carico delle applicazioni classico o bilanciatore del carico delle applicazioni interno tra regioni: sia il servizio di backend sia il controllo di integrità sono globali per questi bilanciatori del carico. I bilanciatori del carico delle applicazioni possono fare riferimento a più di un controllo di integrità se fanno riferimento a più di un servizio di backend.

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --global \
          --health-checks HEALTH_CHECK_NAME \
          --global-health-checks
      
    • Per modificare il controllo di integrità dell'integrità di un bilanciatore del carico delle applicazioni esterno regionale, di un bilanciatore del carico di rete proxy esterno regionale, di un bilanciatore del carico delle applicazioni interno regionale o di un bilanciatore del carico di rete proxy interno regionale: sia il servizio di backend sia il controllo di integrità sono a livello di regione. Alcuni bilanciatori del carico potrebbero fare riferimento a più di un controllo di integrità se possono fare riferimento a più di un servizio di backend.

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --region=REGION \
          --health-checks=HEALTH_CHECK_NAME \
          --health-checks-region=REGION
      

API

  1. Puoi elencare i servizi di backend con la chiamata all'API backendServices.list.

  2. Visualizza i controlli di integrità.

  3. Per associare un controllo di integrità a un servizio di backend, utilizza una di queste chiamate API:

Associare i controlli di integrità precedenti ai bilanciatori del carico di rete passthrough esterni basati su pool di destinazione

Per associare un controllo di integrità precedente a un nuovo bilanciatore del carico di rete passthrough esterno, consulta Configura un bilanciatore del carico di rete passthrough esterno con un pool di destinazione. Questa sezione descrive come associare un controllo di integrità legacy a un bilanciatore del carico di rete passthrough esterno basato su pool di destinazione.

Questa sezione presuppone che tu abbia già:

Console

Per associare un controllo di integrità a un bilanciatore del carico di rete passthrough esterno basato su pool di destinazione esistente:

  1. Vai alla pagina Bilanciamento del carico nella console Google Cloud.
    Vai alla pagina Bilanciamento del carico
  2. Fai clic su un bilanciatore del carico per visualizzarne i dettagli.
  3. Fai clic su Modifica e poi su Configurazione backend.
  4. Scegli un controllo di integrità legacy dal menu Controllo di integrità. (vengono mostrati solo i controlli di integrità legacy idonei).
  5. Fai clic su Aggiorna.

gcloud

Per associare un controllo di integrità a un bilanciatore del carico di rete passthrough esterno basato su pool di destinazione esistente:

  1. Identifica i pool di destinazione. Un bilanciatore del carico di rete passthrough esterno ha almeno un pool di destinazione e potrebbe avere un pool di backup secondario.

    gcloud compute target-pools list
    
  2. Identifica un controllo di integrità legacy utilizzando il protocollo HTTP. Visualizza i controlli di salute legacy, se necessario.

  3. Associa il controllo di integrità legacy ai pool di destinazione. Nei seguenti comandi, sostituisci TARGET_POOL_NAME con il nome del pool di destinazione, REGION con la relativa regione e LEGACY_CHECK_NAME con il nome del controllo di integrità precedente. Il controllo di integrità precedente deve utilizzare il protocollo HTTP.

    • Per rimuovere un controllo di integrità HTTP legacy da un pool di destinazione:

      gcloud compute target-pools remove-health-checks TARGET_POOL_NAME \
          --region=REGION \
          --http-health-check LEGACY_CHECK_NAME
      
    • Per aggiungere un controllo di integrità HTTP legacy a un pool di destinazione:

      gcloud compute target-pools add-health-checks TARGET_POOL_NAME \
          --region=REGION \
          --http-health-check LEGACY_CHECK_NAME
      

API

  1. Puoi elencare i pool di destinazione con la chiamata API targetPools.list.

  2. Visualizza i controlli di integrità legacy e identifica un controllo di integrità HTTP legacy.

  3. Per associare un controllo di integrità HTTP legacy a un pool di destinazione, utilizza la chiamata API targetPools.addHealthCheck.

Controllare lo stato del controllo di integrità

Dopo aver associato un controllo di integrità a un servizio di backend o a un pool di destinazione, puoi ottenere lo stato istantaneo del controllo di integrità per i backend del bilanciatore del carico.

Console

  1. Vai alla pagina di riepilogo del bilanciamento del carico.
    Vai alla pagina Bilanciamento del carico
  2. Fai clic sul nome di un bilanciatore del carico.
  3. In Backend, controlla la colonna Integro. Lo stato di integrità viene riportato per ogni gruppo di istanza di backend o gruppo di endpoint di rete.

gcloud

  • Per tutti i bilanciatori del carico, ad eccezione dei bilanciatori del carico di rete passthrough esterni basati su pool di destinazione, identificate il nome e l'ambito (globale o regionale) del servizio di backend. Per un elenco completo di bilanciatori del carico e ambiti, consulta Servizi di backend.

    Utilizza il comando compute backend-services get-health, sostituendo NAME con il nome del servizio di backend e REGION con la relativa regione, se necessario.

    • Per ottenere lo stato di integrità istantaneo di un servizio di backend globale:

      gcloud compute backend-services get-health GLOBAL_BACKEND_SERVICE_NAME \
          --global
      
    • Per ottenere lo stato di salute istantaneo di un servizio di backend regionale:

      gcloud compute backend-services get-health REGIONAL_BACKEND_SERVICE_NAME \
          --region=REGION
      
  • Per i bilanciatori del carico di rete passthrough esterni basati su pool di destinazione, identifica il nome e la regione del pool di destinazione del bilanciatore del carico, quindi utilizza il comando compute target-pools get-health sostituendo NAME con il nome del pool di destinazione e REGION con la relativa regione.

    gcloud compute target-pools get-health TARGET_POOL_NAME \
        --region=REGION
    

API

  • Per tutti i bilanciatori del carico, ad eccezione dei bilanciatori del carico di rete passthrough esterni basati su pool di destinazione, identificate il nome e l'ambito (globale o regionale) del servizio di backend. Per un elenco completo di bilanciatori del carico e ambiti, consulta Servizi di backend.

  • Per i bilanciatori del carico di rete passthrough esterni basati su pool di destinazione, utilizza targetPools.getHealth