Configura il controllo di integrità attivo per il failover a livello di regione con PSC

Questa pagina riguarda Apigee, ma non Apigee ibrido.

Visualizza la documentazione di Apigee Edge.

Questo documento spiega come configurare Apigee per configurare un controllo di integrità attivo per i casi in cui vuoi utilizzare Private Service Connect (PSC) per il routing della rete in direzione nord (traffico dai client ad Apigee). Il controllo di integrità attivo è utile per prevenire la perdita di traffico di rete in caso di errore a livello di regione.

Panoramica

Se prevedi di utilizzare PSC per il routing di rete verso nord di Apigee, segui le istruzioni in questo documento per configurare il controllo di integrità attivo. Al momento, PSC non supporta il monitoraggio attivo del controllo di integrità. Per aggirare questa limitazione di PSC, puoi modificare la configurazione di installazione di Apigee in modo da utilizzare un gruppo di istanze gestite, che fornisce funzionalità di controllo di integrità attivo.

Puoi utilizzare il rilevamento degli outlier per il monitoraggio dello stato di integrità; tuttavia, durante gli errori regionali, potresti perdere periodicamente una certa quantità di traffico, in quanto il rilevamento di outlier utilizza il traffico in tempo reale come indicatori. Il rilevamento outlier reinstrada periodicamente parte del traffico in tempo reale per verificare l'integrità della regione che ha generato errori.

La figura 1 mostra l'architettura proposta. Un endpoint di servizio si connette al collegamento al servizio nell'istanza Apigee e un gruppo di istanze gestite esegue il proxy del traffico all'endpoint di servizio. Puoi abilitare il monitoraggio del controllo di integrità nel gruppo di istanze gestite.

Figura 1. Architettura Apigee per il controllo di integrità attivo senza peering VPC.

Approccio al controllo di integrità basato su MIG

Prerequisiti

Puoi applicare la tecnica descritta in questo documento alle installazioni Apigee che utilizzano il peering VPC o non utilizzano il peering VPC. Tuttavia, nel caso di un'installazione in peering VPC, la tecnica di controllo di integrità attivo descritta qui si applica solo se si utilizza PSC per la configurazione del routing.

Prima di eseguire i passaggi della sezione:

  • Per le installazioni peering non VPC:
    1. Completa i passaggi da 1 a 6 del provisioning di Apigee per le installazioni basate su abbonamento o con pagamento a consumo. Al momento, l'unica opzione è eseguire questi passaggi utilizzando l'interfaccia a riga di comando.
    2. Ignora il passaggio 7: configura il routing e procedi invece nel seguente modo.
  • Per le installazioni di peering VPC che utilizzano PSC per il routing:
    1. Completa i passaggi da 1 a 7 del provisioning di Apigee per le installazioni basate su abbonamento o con il pagamento a consumo. Al momento, l'unica opzione è eseguire questi passaggi utilizzando l'interfaccia a riga di comando.
    2. Salta il passaggio 8: configura il routing e procedi invece nel seguente modo.

1. Configura un endpoint di servizio PSC per il collegamento al servizio Apigee

In questo passaggio, creerai un endpoint di servizio PSC che punta al collegamento del servizio nell'istanza Apigee:

  1. Recupera il collegamento al servizio dall'istanza Apigee che hai creato in precedenza:
    curl -i -X GET -H "Authorization: Bearer $AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Nel seguente output di esempio, il valore serviceAttachment è mostrato in grassetto:

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "host": "10.82.192.2",
          "port": "443",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "peeringCidrRange": "SLASH_22",
          "runtimeVersion": "1-7-0-20220228-190814",
          "ipRange": "10.82.192.0/22,10.82.196.0/28",
          "consumerAcceptList": [
            "875609189304"
          ],
          "serviceAttachment": "projects/bfac74a67a320c43a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw1"
        }
      ]
    }
  2. Crea un endpoint di servizio PSC che punti al collegamento al servizio che hai ottenuto dal corpo della risposta dell'istanza nel passaggio precedente, come spiegato in Creare un endpoint Private Service Connect.

2. Configura un gruppo di istanze gestite che punti all'endpoint di servizio

In questo passaggio creerai un gruppo di istanze gestite che proxy il traffico all'endpoint di servizio. Potrai quindi abilitare il controllo di integrità attivo sul gruppo di istanze gestite.

2A. Abilita l'accesso privato Google per una subnet della tua rete VPC

Per abilitare l'accesso privato Google per una subnet della tua rete VPC, segui i passaggi elencati in Abilitazione dell'accesso privato Google.

2B. Imposta le variabili di ambiente

Le istruzioni in questa sezione utilizzano le variabili di ambiente per fare riferimento alle stringhe utilizzate più volte. Ti consigliamo di impostarli prima di continuare:

MIG_NAME=YOUR_MIG_NAME  # A name you provide for the MIG
VPC_NAME=default       # If you are using a shared VPC, use the shared VPC name
VPC_SUBNET=default     # Private Google Access must be enabled for this subnet
REGION=RUNTIME_REGION        # The same region as your Apigee runtime instance
SERVICE_ENDPOINT_IP=YOUR_SERVICE_ENDPOINT_IP.  ## The endpoint IP of the service endpoint you just created

Utilizzerai queste variabili più volte durante i processi rimanenti. Se vuoi configurare più regioni, crea variabili con valori specifici per ciascuna regione.

2C. Creare un gruppo di istanze gestite

In questo passaggio creerai e configurerai un gruppo di istanze gestite.

  1. Crea un modello di istanza eseguendo questo comando.
    gcloud compute instance-templates create $MIG_NAME \
    --project $PROJECT_ID \
    --region $REGION \
    --network $VPC_NAME \
    --subnet $VPC_SUBNET \
    --tags=https-server,apigee-mig-proxy,gke-apigee-proxy \
    --machine-type e2-medium --image-family debian-12 \
    --image-project debian-cloud --boot-disk-size 20GB \
    --no-address \
    --metadata ENDPOINT=$SERVICE_ENDPOINT_IP,startup-script-url=gs://apigee-5g-saas/apigee-envoy-proxy-release/latest/conf/startup-script.sh

    Come puoi vedere da questo comando, le macchine sono di tipo e2-medium. Eseguono Debian 12 e hanno 20 GB di disco. Lo script startup-script.sh configura il gruppo di istanze gestite per instradare il traffico in entrata dal bilanciatore del carico all'istanza Apigee.

  2. Crea un gruppo di istanze gestite eseguendo questo comando:
    gcloud compute instance-groups managed create $MIG_NAME \
    --project $PROJECT_ID --base-instance-name apigee-mig \
    --size 2 --template $MIG_NAME --region $REGION
  3. Configura la scalabilità automatica per il gruppo eseguendo questo comando:
    gcloud compute instance-groups managed set-autoscaling $MIG_NAME \
    --project $PROJECT_ID --region $REGION --max-num-replicas 3 \
    --target-cpu-utilization 0.75 --cool-down-period 90
  4. Definisci una porta denominata eseguendo questo comando:
    gcloud compute instance-groups managed set-named-ports $MIG_NAME \
    --project $PROJECT_ID --region $REGION --named-ports https:443

3. configura il bilanciatore del carico con il monitoraggio del controllo di integrità

Nei passaggi seguenti configurerai un bilanciatore del carico con il monitoraggio del controllo di integrità.

3A. Crea un certificato e una chiave SSL per il bilanciatore del carico

Devi creare le credenziali una sola volta, sia che tu stia eseguendo l'installazione in una o più regioni. In un passaggio successivo, assocerai queste credenziali al proxy HTTPS di destinazione del bilanciatore del carico.

Puoi creare le credenziali con:

Per ulteriori informazioni sulla creazione e sull'utilizzo dei certificati SSL per il bilanciatore del carico Google Cloud, consulta i certificati SSL e la panoramica dei certificati SSL.

Nel seguente esempio, viene creato un certificato SSL gestito da Google:

  1. Crea queste variabili di ambiente:
    CERTIFICATE_NAME=YOUR_CERT_NAME
    DOMAIN_HOSTNAME=YOUR_DOMAIN_HOSTNAME 

    Imposta DOMAIN_HOSTNAME su un nome host di dominio valido che hai registrato. In un passaggio successivo, otterrai l'indirizzo IP del bilanciatore del carico e aggiornerai il record A del dominio in modo che punti a quell'indirizzo. Ad esempio, un nome host di dominio potrebbe avere il seguente aspetto: foo.example.com.

  2. Esegui il comando gcloud compute ssl-certificates create:
    gcloud compute ssl-certificates create $CERTIFICATE_NAME \
    --domains=$DOMAIN_HOSTNAME \
    --project $PROJECT_ID \
    --global

    Il provisioning del certificato può richiedere fino a un'ora. Per verificare lo stato del provisioning, esegui questo comando:

    gcloud compute ssl-certificates describe $CERTIFICATE_NAME \
    --global \
    --format="get(name,managed.status, managed.Status)"

3B. Crea un controllo di integrità

  1. Crea un controllo di integrità:
    gcloud compute health-checks create https HEALTH_CHECK_NAME \
    --project $PROJECT_ID --port 443 --global \
    --request-path /healthz/ingress

    Utilizzerai questo controllo di integrità per garantire che il servizio di backend sia in esecuzione. Per configurare controlli di integrità più avanzati su un proxy specifico, consulta Esecuzione di controlli di integrità.

  2. Crea un servizio di backend:
    gcloud compute backend-services create PROXY_BACKEND_NAME \
    --project $PROJECT_ID \
    --protocol HTTPS \
    --health-checks HEALTH_CHECK_NAME \
    --port-name https \
    --timeout 302s \
    --connection-draining-timeout 300s \
    --global
  3. Aggiungi il gruppo di istanze gestite al tuo servizio di backend con il seguente comando:
    gcloud compute backend-services add-backend PROXY_BACKEND_NAME \
    --project $PROJECT_ID --instance-group $MIG_NAME \
    --instance-group-region $REGION \
    --balancing-mode UTILIZATION --max-utilization 0.8 --global
  4. Crea una mappa URL di bilanciamento del carico con il seguente comando:
    gcloud compute url-maps create MIG_PROXY_MAP_NAME \
    --project $PROJECT_ID --default-service PROXY_BACKEND_NAME
  5. Crea un proxy HTTPS di destinazione del bilanciamento del carico con il seguente comando:
    gcloud compute target-https-proxies create MIG_HTTPS_PROXY_NAME \
    --project $PROJECT_ID --url-map MIG_PROXY_MAP_NAME \
    --ssl-certificates $CERTIFICATE_NAME

3C. Ottieni un indirizzo IP riservato e crea regole firewall

Devi assegnare un indirizzo IP al bilanciatore del carico, quindi creare regole che consentano al bilanciatore del carico di accedere al gruppo di istanze gestite. Dovrai eseguire questo passaggio una sola volta, sia che tu stia eseguendo l'installazione in una o più regioni.

  1. Prenota un indirizzo IP per il bilanciatore del carico:
    gcloud compute addresses create ADDRESSES_NAME \
    --project $PROJECT_ID \
    --ip-version=IPV4 \
    --global
  2. Crea una regola di forwarding globale con il seguente comando:
    gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --project $PROJECT_ID --address ADDRESSES_NAME --global \
    --target-https-proxy MIG_HTTPS_PROXY_NAME --ports 443
  3. Per ottenere l'indirizzo IP riservato, esegui questo comando:
    gcloud compute addresses describe ADDRESSES_NAME \
    --project $PROJECT_ID --format="get(address)" --global
  4. Passaggio importante : vai al sito, all'host DNS o all'ISP dove sono gestiti i record DNS e assicurati che il record DNS del tuo dominio venga risolto nell'indirizzo IP del bilanciatore del carico Google Cloud. Questo indirizzo è il valore IP restituito nell'ultimo passaggio. Per maggiori dettagli, consulta Aggiornare i record DNS A e AAAA in modo che puntino all'indirizzo IP del bilanciatore del carico.
  5. Crea una regola firewall che consenta al bilanciatore del carico di accedere al gruppo di istanze gestite utilizzando il seguente comando:
    gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --description "Allow incoming from GLB on TCP port 443 to Apigee Proxy" \
    --project $PROJECT_ID --network $VPC_NAME --allow=tcp:443 \
    --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=gke-apigee-proxy

    Tieni presente che gli intervalli di indirizzi IP 130.211.0.0/22 e 35.191.0.0/16 sono gli intervalli di indirizzi IP di origine per il bilanciamento del carico di Google. Questa regola firewall consente a Google Cloud Load Balancing di effettuare richieste di controllo di integrità al gruppo di istanze gestite.

Provisioning di Apigee completato. Vai a Deployment di un proxy di esempio.