Configurare il controllo di integrità attivo per il failover regionale con PSC

Questa pagina si applica a Apigee, ma non a Apigee ibrido.

Visualizza la documentazione di Apigee Edge.

Questo documento spiega come configurare Apigee per configurare i controllo di integrità per i casi in cui vuoi utilizzare Private Service Connect (PSC) per il routing di rete verso nord (traffico da ad Apigee). Il controllo di integrità attivo è utile per evitare la perdita di traffico di rete in caso di guasto regionale.

Panoramica

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

Puoi utilizzare il rilevamento degli outlier per il monitoraggio dell'integrità. Tuttavia, durante i guasti regionali, potresti perdere periodicamente una certa quantità di traffico, poiché il rilevamento degli outlier utilizza il traffico in tempo reale come indicatori. Il rilevamento outlier reindirizza periodicamente parte del traffico in tempo reale a controlla l'integrità della regione in errore.

La figura 1 mostra l'architettura proposta. Un endpoint di servizio si connette all'attacco del servizio nell'istanza Apigee e un MIG esegue il proxy del traffico all'endpoint di servizio. Attiva il monitoraggio dei controlli di integrità nel gruppo di istanze gestite.

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

Approccio di controllo di integrità basato su MIG

Prerequisiti

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

Prima di eseguire i passaggi descritti in questa sezione:

  • Per le installazioni di peering non VPC:
    1. Completa i passaggi da 1 a 6 del provisioning di Apigee per le installazioni a pagamento mensile 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 abbonamento oppure Installazioni con pagamento a consumo. Al momento, l'unica opzione è eseguire questi passaggi utilizzando l'interfaccia a riga di comando.
    2. Ignora il passaggio 8: configura il routing e procedi invece nel seguente modo.

1. Configura un endpoint del servizio PSC per il collegamento del servizio Apigee

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

  1. Recupera l'allegato del servizio dall'istanza Apigee creata in precedenza:
    curl -i -X GET -H "Authorization: Bearer $AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Nell'output di esempio seguente, 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 del servizio ottenuto dal corpo della risposta dell'istanza nel passaggio precedente, come spiegato in Crea un endpoint Private Service Connect.

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

In questo passaggio, crei un gruppo di istanze gestite che esegue il proxy del traffico verso l'endpoint di servizio. Puoi quindi attivare il controllo di integrità attivo nel gruppo di istanze gestite.

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

Per attivare l'accesso privato Google per una subnet della tua rete VPC, segui i passaggi descritti 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 a stringhe utilizzate ripetutamente. 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 le restanti procedure. Se vuoi configurare più regioni, crea variabili con valori specifici per ogni regione.

2C. Creare un gruppo di istanze gestite

In questo passaggio, crei e configuri un gruppo di istanze gestite (MIG).

  1. Crea un modello di istanza eseguendo il seguente 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 spazio su 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 il seguente 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 il seguente 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 dei controlli di integrità

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

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

Devi creare le credenziali una sola volta, indipendentemente dal fatto che 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 saperne di più sulla creazione e sull'utilizzo di certificati SSL per il bilanciatore del carico Google Cloud, consulta Certificati SSL e 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 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 controllare lo stato di eseguire il 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 assicurarti che il servizio di backend sia in esecuzione. Per configurare controlli di integrità più avanzati per un proxy specifico, consulta Eseguire 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 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 per il 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 e quindi creare regole che consentano al bilanciatore del carico per accedere al gruppo di istanze gestite. Devi eseguire questo passaggio una sola volta, indipendentemente dall'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. Recupera l'indirizzo IP riservato eseguendo il seguente 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 in cui sono gestiti i tuoi record DNS e assicurati che il record DNS del tuo dominio risolva nell'indirizzo IP del bilanciatore del carico Google Cloud. Questo indirizzo è il valore IP restituito nell'ultimo passaggio. Per ulteriori dettagli, vedi Aggiorna 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 Google. Questa regola firewall consente a Google Cloud Load Balancing di effettuare richieste di controllo di integrità al gruppo di istanze gestite.

Il provisioning di Apigee è stato completato. Vai a Eseguire il deployment di un proxy di esempio.