Creazione di 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à dei bilanciatori del carico e di Traffic Director.

Questa pagina presuppone che tu conosca i seguenti concetti:

Categorie, protocolli e porte del controllo di integrità

Google Cloud organizza i controlli di integrità per categoria e protocollo.

Esistono due categorie di controlli di integrità: controlli di integrità e controlli di integrità legacy. Ogni categoria supporta un diverso insieme di protocolli e un mezzo per specificare la porta utilizzata per il controllo di integrità.

Traffic Director e la maggior parte dei bilanciatori del carico utilizzano controlli di integrità non legacy, ma il bilanciamento del carico di rete basato su pool di destinazione richiede l'utilizzo di controlli di integrità legacy. Fai riferimento a Selezione di un controllo di integrità nella pagina Panoramica dei controlli di integrità per determinare il metodo appropriato per categoria, protocollo e specifica della porta.

Il protocollo selezionato per un controllo di integrità non deve necessariamente corrispondere a quello utilizzato dal bilanciatore del carico, che in alcuni casi non può farlo. Per ulteriori informazioni, consulta Protocolli e bilanciatori del carico.

Il termine "controllo di integrità" non si riferisce ai controlli di integrità legacy. In questo documento i controlli di integrità legacy sono denominati esplicitamente "accesso precedente".

Controlli di integrità della scheda

console

  1. Vai alla pagina Controlli di integrità in Google Cloud Console.
    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à a livello di area geografica, sostituisci REGION_LIST con un elenco delimitato da virgole di aree geografiche Google Cloud su cui eseguire la query.

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

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

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

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

    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 queste chiamate API:

Creazione di controlli di integrità

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

Puoi anche creare un controllo di integrità indipendentemente dalla configurazione del bilanciatore del carico in Google Cloud Console. Ciò è utile se devi prima creare un controllo di integrità o se devi utilizzare un controllo di integrità per più bilanciatori del carico. Puoi creare un controllo di integrità utilizzando Google Cloud Console, l'interfaccia a riga di comando di Google Cloud o le API REST.

console

  1. Vai alla pagina Controlli di integrità in Google Cloud Console.
    Vai alla pagina Controlli di integrità
  2. Fai clic su Crea controllo di integrità.
  3. Nella pagina Crea un controllo di integrità, fornisci le seguenti informazioni:
    • Nome: fornisci un nome per il controllo di integrità.
    • (Facoltativo) Descrizione: fornisci una descrizione.
    • Ambito: seleziona un ambito, Globale o A livello di area geografica, a seconda del tipo di bilanciatore del carico.
      • Se hai selezionato Regionale, scegli una Regione dal menu a discesa.
    • Protocollo: scegli un protocollo per il controllo di integrità.
    • Porta: specifica un numero di porta. Quando crei un controllo di integrità in Google Cloud Console, devi specificare la porta utilizzando un numero di porta.
    • Protocollo proxy: puoi aggiungere un'intestazione proxy alle richieste effettuate dai sistemi del probe di controllo di integrità. (facoltativo)
    • Percorso e risposta della richiesta: per i protocolli HTTP, HTTPS e HTTP2, puoi eventualmente fornire un percorso dell'URL da contattare per i sistemi dei probe del controllo di integrità. Per ulteriori informazioni, consulta Flag aggiuntivi per i controlli di integrità HTTP, HTTPS e HTTP/2.
    • Richiesta e Risposta: per i protocolli TCP e SSL, puoi specificare una stringa di testo ASCII da inviare e una stringa di risposta di testo prevista. Per ulteriori informazioni, vedi Flag aggiuntivi per i controlli di integrità SSL e TCP.
    • Intervallo di controllo: definisce il periodo di tempo dall'inizio di un probe all'inizio di quello successivo.
    • Timeout: definisce il tempo di attesa da parte di Google Cloud per la risposta a un probe. Il suo valore deve essere inferiore o uguale all'intervallo di controllo.
    • Soglia in stato integro: definisce il numero di probe sequenziali che devono essere riusciti affinché l'istanza VM venga considerata integri.
    • Soglia in stato non integro: definisci il numero di probe sequenziali per cui l'istanza VM può essere considerata in stato non integro.
  4. Fai clic su Crea.

gcloud

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

    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 area geografica, utilizza il comando appropriato compute health-checks create:

    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, mentre i controlli di integrità a livello di area geografica devono avere nomi univoci all'interno di una determinata area geografica.
  • REGION: tutti i bilanciatori del carico ad eccezione dei bilanciatori del carico HTTP(S) esterni a livello di area geografica e dei bilanciatori del carico HTTP(S) interni utilizzano controlli di integrità globali (--global). I bilanciatori del carico HTTP(S) interni utilizzano controlli di integrità a livello di area geografica la cui area geografica deve corrispondere all'area geografica del servizio di backend.
  • DESCRIPTION è una descrizione facoltativa.
  • CHECK_INTERVAL indica il tempo che intercorre tra l'inizio di una connessione del sistema di probe del controllo di integrità all'inizio di quella successiva. Le unità sono in secondi. Se omesso, Google Cloud utilizza un valore di 5s (5 secondi).
  • TIMEOUT è il tempo di attesa da parte di Google Cloud per la risposta a un probe. Il valore dell'elemento TIMEOUT deve essere minore o uguale all'elemento CHECK_INTERVAL. Le unità sono in secondi. Se omesso, Google Cloud utilizza un valore 5s (5 secondi).
  • HEALTHY_THRESHOLD e UNHEALTHY_THRESHOLD specificano il numero di probe sequenziali che devono avere esito positivo o negativo per essere considerati in stato integro o in stato non integro. 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 delle specifiche della porta.
  • ADDITIONAL_FLAGS sono altri flag per specificare porte e opzioni specifiche per PROTOCOL. Vedi Flag aggiuntivi per i controlli di integrità HTTP, HTTPS e HTTP, Flag aggiuntivi per i controlli di integrità SSL e TCP o Flag aggiuntivi per i controlli di integrità gRPC.

API

Modifica dei controlli di integrità

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

console

  1. Vai alla pagina Controlli di integrità in Google Cloud Console.
    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 la sezione Elencare i controlli di integrità.

  2. Ad eccezione di un controllo di integrità, nome, protocollo e ambito, puoi modificare qualsiasi flag comune, i flag delle specifiche della porta e i flag facoltativi. Per modificare un controllo di integrità esistente, utilizza il comando Comando compute health-checks update appropriato. Per i flag che ometti, vengono conservate le impostazioni preconfigurate.

    • 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 area geografica: il seguente comando modifica un controllo di integrità TCP a livello di area geografica in us-west1 denominato hc-west1-tcp-ldap modificando la 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 istruzioni, consulta la sezione Elencare i controlli di integrità.

  2. Ad eccezione di nome, protocollo e ambito del controllo di integrità, puoi modificare qualsiasi flag comune, flag di specifica della porta e flag facoltativi con queste chiamate API. Utilizza le chiamate API patch per preservare le impostazioni preconfigurate che non sono state esplicitamente configurate nella richiesta.

Flag aggiuntivi

Questa sezione descrive i flag aggiuntivi che puoi utilizzare quando crei o modifichi un controllo di integrità. Alcuni flag, come la specifica della porta, devono essere impostati utilizzando gcloud o l'API.

Flag delle specifiche della porta

Se crei un controllo di integrità utilizzando l'interfaccia a riga di comando di Google Cloud o l'API, hai due opzioni per specificare la porta del controllo di integrità. La tabella seguente mostra le opzioni delle specifiche di porta per le combinazioni valide di bilanciatore del carico e backend. Il termine gruppo di istanze si riferisce a gruppi di istanze non gestite, gruppi di istanze di zona gestiti o gruppi di istanze a livello di area geografica gestiti.

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

Prodotto Tipo di backend Opzioni delle specifiche della porta
Bilanciamento del carico di rete Gruppi di istanze --port: specifica una porta TCP per numero, da 1 a 65535
Il flag --use-serving-port verrà ignorato per un controllo di integrità associato a un bilanciatore del carico di rete perché i servizi di backend per i bilanciatori del carico di rete non hanno una specifica della porta.
Bilanciamento del carico TCP/UDP interno Gruppi di istanze --port: specifica una porta TCP per numero, da 1 a 65535
Il flag --use-serving-port verrà ignorato per un controllo di integrità associato a un bilanciatore del carico TCP/UDP interno perché i servizi di backend per i bilanciatori del carico TCP/UDP interni non hanno una specifica della porta.
Bilanciamento del carico HTTP(S) interno

Bilanciamento del carico del proxy TCP

Bilanciamento del carico del proxy SSL

Bilanciamento del carico HTTP(S) esterno (globale e regionale)

Direttore del traffico
NEG neurali --port: specifica una porta TCP per 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 per numero, da 1 a 65535
--use-serving-port: utilizza lo stesso gruppo di istanze denominato porta a cui sottoscrive il servizio di backend.

Se ometti le specifiche della porta, Google Cloud utilizza i seguenti valori predefiniti:

  • Se il protocollo di controllo di integrità è TCP o HTTP, utilizza --port=80.
  • Se il protocollo di controllo di integrità è SSL, HTTPS o HTTP2, utilizza --port=443.
  • Se il protocollo di controllo di integrità è GRPC, non esiste un valore predefinito implicito; devi includere la specifica della porta.

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

Oltre ai flag comuni e alle specifiche della porta, 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, utilizzando la porta 80 con i criteri predefiniti, a livello di intervallo e di intervallo.

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 delle specifiche della porta.
  • HOST 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 di PROXY_V1 aggiunge l'intestazione PROXY UNKNOWN\r\n.
  • REQUEST_PATH specifica il percorso dell'URL che Google Cloud utilizza quando invia richieste di controllo di integrità. Se omessa, 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 ASCII, numeri e spazi.
    • 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, non sono supportati gli operatori come ! in HAProxy.

Se Google Cloud trova la stringa di risposta prevista in un punto qualsiasi dei primi 1024 byte del corpo della risposta ricevuta e se lo stato HTTP è 200 (OK), il probe viene considerato riuscito.

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

Flag aggiuntivi per i controlli di integrità SSL e TCP

Oltre ai flag comuni e alle specifiche della porta, 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 criteri di intervallo, timeout e 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 delle specifiche della porta.
  • PROXY_HEADER deve essere NONE o PROXY_V1. Se omesso, Google Cloud utilizza NONE. Il valore di 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 esito positivo per il probe del 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 integrità sul backend. Il parametro di servizio nella richiesta è impostato su una stringa vuota, a meno che non venga specificato un nome di servizio gRPC.

Un controllo di integrità gRPC può controllare lo stato di un servizio gRPC. Puoi includere una stringa di massimo 1024 caratteri ASCII, il nome di un particolare servizio gRPC in esecuzione su una VM di backend o NEG. A tale scopo, 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 stato registrati dal server di backend con il tuo servizio gRPC Health del 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à contro MyPackage.ServiceA, come segue, il probe 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à contro MyPackage.ServiceB, il probe del controllo di integrità restituisce UNHEALTHY perché lo stato del servizio è NOT_SERVING.

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

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

Controlli di integrità legacy

Questa sezione descrive come elencare, creare e modificare i controlli di integrità HTTP legacy e i controlli di integrità HTTPS legacy.

Se la risposta ricevuta dal probe del controllo di integrità precedente è HTTP 200 OK, il probe è considerato riuscito. Tutti gli altri codici di risposta HTTP, incluso un reindirizzamento (301, 302), sono considerati in stato non integro.

Elenco dei controlli di integrità legacy

console

  1. Vai alla pagina Controlli di integrità in Google Cloud Console.
    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 legacy, 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 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 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:

Creazione di controlli di integrità legacy

console

Anche se la pagina dei controlli di integrità di Google Cloud Console elenca e consente di modificare entrambi i controlli di integrità e i controlli di integrità legacy, non è possibile creare un nuovo controllo di integrità precedente dalla pagina dei controlli di integrità di Google Cloud Console.

Puoi creare un controllo di integrità legacy in Google Cloud Console solo durante la creazione di un bilanciatore del carico di rete basato su un pool di destinazione. Per creare da solo il controllo di integrità precedente, utilizza le gcloud o le istruzioni 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 precedente. Se stai creando il controllo di integrità precedente per un bilanciatore del carico di rete basato su un pool di destinazione, devi utilizzare http-health-checks.
  • NAME è il nome del controllo di integrità precedente. All'interno di un determinato progetto, ogni controllo di integrità precedente deve avere un nome univoco.
  • DESCRIPTION è una descrizione facoltativa.
  • CHECK_INTERVAL è il lasso di tempo che intercorre dall'inizio di un probe all'inizio di quello successivo. Le unità sono in secondi. Se omesso, Google Cloud utilizza un valore 5s (5 secondi).
  • TIMEOUT è il tempo di attesa da parte di Google Cloud per la risposta a un probe. Il valore dell'elemento TIMEOUT deve essere inferiore o uguale all'elemento CHECK_INTERVAL. Le unità sono in secondi. Se omesso, Google Cloud utilizza un valore di 5s (5 secondi).
  • HEALTHY_THRESHOLD e UNHEALTHY_THRESHOLD specificano il numero di probe sequenziali che devono avere esito positivo o negativo affinché un'istanza VM possa essere considerata integro o in stato non integro. Se uno dei due viene omesso, Google Cloud utilizza una soglia predefinita di 2.
  • HOST consente di fornire un'intestazione HTTP 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 che Google Cloud utilizza quando invia richieste di controllo di integrità. Se omessa, la richiesta di controllo di integrità viene inviata all'indirizzo /.

API

Modifica dei controlli di integrità legacy

console

  1. Vai alla pagina Controlli di integrità in Google Cloud Console.
    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 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 nome. Quando modifichi un controllo di integrità legacy con gcloud, le impostazioni preconfigurate per i flag che ometti vengono mantenute. OTHER_OPTIONS sono le opzioni descritte nella creazione di un controllo di integrità precedente.

    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 nome. Quando modifichi un controllo di integrità legacy con gcloud, le impostazioni preconfigurate per i flag che ometti vengono mantenute. OTHER_OPTIONS sono le opzioni descritte nella creazione di un controllo di integrità precedente.

    gcloud compute https-health-checks update NAME \
      OTHER_OPTIONS
    

API

Ad eccezione di un nome e di un tipo di controllo di integrità legacy, puoi modificare qualsiasi flag utilizzato per la sua creazione. Le chiamate API patch conservano tutte le impostazioni preconfigurate che non sono esplicitamente configurate nella richiesta di patch.

Regole firewall obbligatorie

Devi creare regole firewall in entrata applicabili a tutte le VM in bilanciamento del carico per consentire il traffico da intervalli IP soggetti a controlli di integrità. Gli esempi seguenti creano regole firewall applicabili alle istanze VM per tag di destinazione. Per ulteriori informazioni sulla specifica dei target per le regole firewall, consulta la spiegazione dei target in Panoramica delle regole firewall e Configurazione dei tag di rete.

Ognuno di questi esempi consente a tutto il traffico TCP da 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 firewall potrebbero diventare specifiche per un determinato controllo di integrità. Se utilizzi tcp:80 per il protocollo e la porta, è consentito il traffico TCP sulla porta 80, quindi Google Cloud potrebbe contattare le tue VM tramite HTTP sulla porta 80, ma non è possibile contattarlo tramite HTTPS sulla porta 443.

Regole firewall per i controlli di integrità

L'esempio seguente crea una regola firewall in entrata per i seguenti bilanciatori del carico:

  • Bilanciamento del carico TCP/UDP interno
  • Bilanciamento del carico HTTP(S) interno
  • Bilanciamento del carico del proxy TCP
  • Bilanciamento del carico del proxy SSL
  • Bilanciamento del carico HTTP(S) (globale e regionale)

Per questi bilanciatori del carico, gli intervalli IP di origine per i controlli di integrità (inclusi i controlli di integrità legacy se utilizzati per il bilanciamento del carico HTTP(S)) sono:

  • 35.191.0.0/16
  • 130.211.0.0/22

Se hai bisogno di creare regole per il bilanciamento del carico di rete, consulta la sezione successiva, Regole per il bilanciamento del carico di rete.

console

  1. Vai alla pagina Firewall in Google Cloud Console.
    Vai alla pagina 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.
    • Priority (Priorità): inserisci un numero per la priorità. I numeri più bassi hanno priorità più elevate. Assicurati che la regola firewall abbia una priorità più elevata rispetto ad altre regole che potrebbero rifiutare il traffico in entrata.
    • Direzione del traffico: scegli in entrata.
    • Azione in caso di corrispondenza: scegli consenti.
    • Target: scegli Tag di destinazione specificati, quindi inserisci i tag nella casella di testo Tag di destinazione. Per questo esempio, utilizza allow-health-checks.
    • Filtro di origine: scegli Intervalli IP.
    • Intervalli IP di origine: 35.191.0.0/16,130.211.0.0/22
    • Protocolli e porte consentiti: utilizza tcp e la porta configurata nel controllo di integrità. Il protocollo TCP è il protocollo alla base di tutti i protocolli di controllo di integrità.
    • Fai clic su Crea.
  4. In ogni istanza con bilanciamento del carico, aggiungi il tag di rete in modo che venga applicata a questa nuova regola firewall in entrata. In questo esempio viene utilizzato allow-health-checks per il tag di rete.

gcloud

  1. Utilizza il comando gcloud seguente per creare una regola firewall denominata fw-allow-health-checks che consenta le connessioni TCP in arrivo, dai sistemi di controllo di integrità Google Cloud, alle istanze nella tua rete VPC con il tag allow-health-checks. Sostituisci NETWORK_NAME con il nome della tua rete VPC e sostituisci 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=35.191.0.0/16,130.211.0.0/22 \
        --target-tags=allow-health-checks \
        --rules=tcp:PORT
  2. In ogni istanza con bilanciamento del carico, aggiungi il tag di rete in modo che venga applicata a questa nuova regola firewall in entrata. In questo esempio viene utilizzato allow-health-checks per il tag di rete.

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

Regole per il bilanciamento del carico di rete

L'esempio seguente crea una regola firewall in entrata per il bilanciamento del carico di rete.

Per i bilanciatori del carico di rete che gestiscono il traffico IPv4, devi consentire i probe del controllo di integrità dai seguenti intervalli di indirizzi IP di origine:

  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22

Per i bilanciatori del carico di rete che gestiscono il traffico IPv6, devi consentire i probe del controllo di integrità dal seguente intervallo di indirizzi IP di origine:

  • 2600:1901:8001::/48

Questi intervalli si applicano a entrambi i tipi di bilanciatore del carico di rete: il bilanciatore del carico di rete basato su pool di destinazione che utilizza i controlli di integrità legacy e il bilanciatore del carico di rete basato sul servizio di backend che utilizza i controlli di integrità non legacy.

console

  1. Vai alla pagina Firewall in Google Cloud Console.
    Vai alla pagina 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-network-lb-health-checks.
    • Rete: scegli una rete VPC.
    • Priority (Priorità): inserisci un numero per la priorità. I numeri più bassi hanno priorità più elevate. Assicurati che la regola firewall abbia una priorità più elevata rispetto ad altre regole che potrebbero rifiutare il traffico in entrata.
    • Direzione del traffico: scegli in entrata.
    • Azione in caso di corrispondenza: scegli consenti.
    • Target: scegli Tag di destinazione specificati, quindi inserisci i tag nella casella di testo Tag di destinazione. Per questo esempio, utilizza allow-network-lb-health-checks.
    • Filtro di origine: scegli Intervalli IP.
    • Intervalli IP di origine: 35.191.0.0/16, 209.85.152.0/22, 209.85.204.0/22
    • Protocolli e porte consentiti: utilizza tcp. TCP è il protocollo sottostante per HTTP e HTTPS.
    • Fai clic su Crea.
  4. In ogni istanza con bilanciamento del carico, aggiungi il tag di rete in modo che venga applicata a questa nuova regola firewall in entrata. In questo esempio viene utilizzato allow-network-lb-health-checks per il tag di rete.

gcloud

  1. Utilizza il comando gcloud seguente per creare una regola firewall denominata fw-allow-network-lb-health-checks che consenta le connessioni TCP in entrata da sistemi di controllo di integrità Google Cloud alle istanze nella tua rete VPC con il tag allow-network-lb-health-checks. Sostituisci NETWORK_NAME con il nome della tua rete VPC.

    gcloud compute firewall-rules create fw-allow-network-lb-health-checks \
        --network=NETWORK_NAME \
        --action=ALLOW \
        --direction=INGRESS \
        --source-ranges=35.191.0.0/16,209.85.152.0/22,209.85.204.0/22 \
        --target-tags=allow-network-lb-health-checks \
        --rules=tcp
  2. In ogni istanza con bilanciamento del carico, aggiungi il tag di rete in modo che venga applicata a questa nuova regola firewall in entrata. In questo esempio viene utilizzato allow-network-lb-health-checks per il tag di rete.

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

Associazione dei controlli di integrità con i bilanciatori del carico e Traffic Director

Questa sezione descrive determinati consigli sul controllo di integrità e i requisiti che devono essere soddisfatti prima di associare un controllo di integrità a un bilanciatore del carico o Traffic Director.

Corrispondenza con il protocollo

È migliore per utilizzare un controllo di integrità (o un controllo di integrità precedente) il cui protocollo corrisponde a quello utilizzato dal servizio di backend o dal pool di destinazione del bilanciatore del carico. Tuttavia, i protocolli per il controllo di integrità e il bilanciatore del carico non devono essere uguali. Ad esempio:

  • Per il bilanciamento del carico TCP/UDP interno, puoi utilizzare solo TCP o UDP per il protocollo del servizio di backend. Se gestisci il traffico HTTP da VM dietro a un bilanciatore del carico TCP/UDP interno, è logico eseguire un controllo di integrità utilizzando il protocollo HTTP.

  • Un bilanciatore del carico di rete basato su un pool di destinazione deve utilizzare un controllo di integrità HTTP legacy. Non può utilizzare un controllo di integrità HTTPS precedente o qualsiasi controllo di integrità non legacy. Se utilizzi un bilanciatore del carico di rete basato su un pool di destinazione per bilanciare il traffico TCP, devi eseguire un servizio HTTP sulle VM bilanciate del carico in modo che possano rispondere ai probe del controllo di integrità.

    Un bilanciatore del carico di rete basato su servizi di backend può utilizzare controlli di integrità non legacy. Ciò significa che puoi utilizzare un controllo di integrità il cui protocollo corrisponde a quello utilizzato dal servizio di backend del bilanciatore del carico di rete.

  • Per i servizi di backend che utilizzano il protocollo gRPC, utilizza solo i controlli di integrità gRPC o TCP. Non utilizzare controlli di integrità HTTP(S) o HTTP/2.

Controlli di integrità per i servizi di backend

Questa sezione descrive come associare un controllo di integrità a un servizio di backend per i seguenti tipi di bilanciatori del carico:

  • Bilanciamento del carico TCP/UDP interno
  • Bilanciamento del carico HTTP(S) interno
  • Bilanciamento del carico del proxy TCP
  • Bilanciamento del carico del proxy SSL
  • Bilanciamento del carico HTTP(S)
  • Bilanciamento del carico di rete basato sul servizio di backend

Questa sezione presuppone che tu abbia già:

Per associare un controllo di integrità a un nuovo bilanciatore del carico TCP/UDP interno, al bilanciatore del carico del proxy TCP, al bilanciatore del carico del proxy SSL, al bilanciatore del carico HTTP(S) esterno o al bilanciatore del carico di rete basato su servizio di backend, consulta la guida alla configurazione per il rispettivo bilanciatore del carico.

console

Per associare un controllo di integrità a un bilanciatore del carico TCP/UDP interno esistente, a un bilanciatore del carico del proxy TCP, a un bilanciatore del carico del proxy SSL, a un bilanciatore del carico HTTP(S) esterno o a un bilanciatore del carico di rete basato su servizio di backend:

  1. Vai alla pagina Bilanciamento del carico in Google Cloud Console.
    Vai alla pagina Bilanciamento del carico
  2. Fai clic su un bilanciatore del carico per visualizzarne i dettagli.
  3. Fai clic su Modifica , quindi 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. Un bilanciatore del carico di rete, un bilanciatore del carico TCP/UDP interno, un bilanciatore del carico del proxy TCP e un bilanciatore del carico del proxy SSL hanno un solo servizio di backend per bilanciatore del carico. I bilanciatori del carico HTTP(S) esterni e i bilanciatori del carico HTTP(S) interni sono associati a uno o più servizi di backend associati a una singola mappa URL.

    • Per elencare i servizi di backend per i bilanciatori del carico TCP/UDP interni, esegui il comando seguente, sostituendo REGION_LIST con un elenco delimitato da virgole di aree geografiche Google Cloud su cui eseguire la query.

      gcloud compute backend-services list \
          --filter="region:( REGION1 REGION2 ... ) AND loadBalancingScheme=INTERNAL"
      
    • Per elencare i servizi di backend per i bilanciatori del carico di rete, esegui il comando seguente, sostituendo ogni REGION con l'area geografica di Google Cloud per le query.

      gcloud compute backend-services list \
          --filter="region:( REGION1 REGION2 ... ) AND loadBalancingScheme=EXTERNAL"
      
    • Per elencare i servizi di backend per i bilanciatori del carico proxy TCP, esegui il comando seguente. I servizi di backend per i bilanciatori del carico proxy TCP sono sempre globali, indipendentemente dal livello di servizio di rete.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=EXTERNAL" \
          --filter="protocol=TCP"
      
    • Per elencare i servizi di backend per i bilanciatori del carico del proxy SSL, esegui il comando seguente. I servizi di backend per i bilanciatori del carico del proxy SSL sono sempre globali, indipendentemente dal livello di servizio di rete.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=EXTERNAL" \
          --filter="protocol=SSL"
      
    • Per identificare i servizi di backend per un bilanciatore del carico HTTP(S) esterno, devi prima identificare una mappa degli URL e poi descriverla. Le mappe URL e i servizi di backend per il bilanciatore del carico HTTP(S) esterno sono sempre globali, indipendentemente dal livello di servizio di rete. Sostituisci URL_MAP_NAME con il nome della mappa URL. Il servizio o 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 HTTP(S) esterno a livello di area geografica o per un bilanciatore del carico HTTP(S) interno, devi prima identificare una mappa degli URL e quindi descrivere la mappa. Le mappe URL e i servizi di backend per i bilanciatori del carico HTTP(S) interni sono validi a livello di area geografica. Sostituisci REGION_LIST con un elenco delimitato da virgole di aree geografiche Google Cloud su cui eseguire la query. Sostituisci URL_MAP_NAME con il nome della mappa degli URL e REGION con il rispettivo paese. Il servizio o 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à. Vedi Elencare i controlli di integrità.

  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 l'area geografica Google Cloud del servizio di backend, il controllo di integrità o entrambi.

    • Per modificare il controllo di integrità di un bilanciatore del carico TCP/UDP interno: un servizio di backend TCP/UDP interno è valido a livello di area geografica. Può fare riferimento a un controllo di integrità globale o regionale. L'esempio seguente mostra un riferimento per il controllo di integrità a livello di area geografica. Se utilizzi un controllo di integrità globale con il bilanciatore del carico TCP/UDP interno, utilizza --global-health-checks invece di --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 basato su servizio di backend: un servizio di backend di rete è un'area geografica. Può fare riferimento a un controllo di integrità a livello di area geografica.

      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à per un bilanciatore del carico proxy TCP, un bilanciatore del carico proxy SSL o un bilanciatore del carico HTTP(S) esterno: sia il servizio di backend che il controllo di integrità sono globali per questi bilanciatori del carico. Un bilanciatore del carico HTTP(S) esterno potrebbe fare riferimento a più di un controllo di integrità se fa 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à per un bilanciatore del carico HTTP(S) esterno a un'area geografica o per un bilanciatore del carico HTTP(S) interno: sia il servizio di backend che il controllo di integrità sono a livello di area geografica. Un bilanciatore del carico HTTP(S) interno può fare riferimento a più di un controllo di integrità se fa 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 API backendServices.list.

  2. Visualizza controlli di integrità.

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

Controlli di integrità legacy per bilanciamento del carico di rete basato su pool

Questa sezione descrive come associare un controllo di integrità legacy a un pool di destinazione per il bilanciamento del carico di rete. Questa sezione presuppone che tu abbia già:

Per associare un controllo di integrità legacy a un nuovo bilanciatore del carico di rete, consulta la sezione Configurare il bilanciamento del carico di rete con un pool di destinazione. Quando crei un bilanciatore del carico di rete, devi associare un controllo di integrità legacy al relativo pool di destinazione.

console

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

  1. Vai alla pagina Bilanciamento del carico in Google Cloud Console.
    Vai alla pagina Bilanciamento del carico
  2. Fai clic su un bilanciatore del carico di rete per visualizzarne i dettagli.
  3. Fai clic su Modifica , quindi su Configurazione backend.
  4. Scegli un controllo di integrità precedente dal menu Controllo di integrità. Sono mostrati solo i controlli di integrità idonei idonei.
  5. Fai clic su Aggiorna.

gcloud

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

  1. Identifica i pool di destinazione. Un bilanciatore del carico di rete 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 con il protocollo HTTP. Se necessario, visualizza i controlli di integrità legacy.

  3. Associa il controllo di integrità precedente ai pool di destinazione. Nei seguenti comandi, sostituisci TARGET_POOL_NAME con il nome del pool di destinazione, REGION con l'area geografica 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 precedente 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 precedente 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à precedenti e identifica un controllo di integrità HTTP precedente.

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

Controllo dello stato del controllo di integrità in corso...

Dopo aver associato un controllo di integrità a un servizio di backend o a un pool di destinazione, puoi ottenere lo stato di controllo di integrità istantaneo 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 Healthy (Stato integro). Viene segnalato lo stato di integrità per ogni gruppo di istanze di backend o ogni gruppo di endpoint di rete.

gcloud

  • Per tutti i bilanciatori del carico, ad eccezione dei bilanciatori del carico di rete basati su pool di destinazione, identifica il nome e l'ambito del servizio di backend. Bilanciatori del carico di rete basati su servizio di backend, bilanciatori del carico TCP/UDP interni, bilanciatori del carico HTTP(S) esterni a livello di area geografica e bilanciatori del carico HTTP(S) interni utilizzano servizi di backend a livello di area geografica. Il bilanciatore del carico del proxy TCP, il bilanciatore del carico del proxy SSL e il bilanciatore del carico HTTP(S) esterno utilizzano servizi di backend globali.

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

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

      gcloud compute backend-services get-health NAME \
          --global
      
    • Per ottenere lo stato di integrità istantaneo di un servizio di backend a livello di area geografica:

      gcloud compute backend-services get-health NAME \
          --region=REGION
      
  • Per i bilanciatori del carico di rete basati su pool di destinazione, identifica il nome e l'area geografica 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 rispettiva area geografica.

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

API

  • Per tutti i bilanciatori del carico, ad eccezione dei bilanciatori del carico di rete basati su pool di destinazione, identifica il nome e l'ambito del servizio di backend. Bilanciatori del carico di rete basati su servizio di backend, bilanciatori del carico TCP/UDP interni, bilanciatori del carico HTTP(S) esterni a livello di area geografica e bilanciatori del carico HTTP(S) interni utilizzano servizi di backend a livello di area geografica. Il bilanciatore del carico del proxy TCP, il bilanciatore del carico del proxy SSL e il bilanciatore del carico HTTP(S) esterno utilizzano servizi di backend globali.

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