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

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

Visualizza 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 prevenire la perdita di traffico di rete in caso di a livello di regione.

Panoramica

Se prevedi di utilizzare PSC per il routing di rete diretto 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 di PSC, puoi modificare l'installazione di Apigee per l'utilizzo di un gruppo di istanze gestite, che fornisce funzionalità attive di controllo di integrità.

Potresti usare rilevamento di outlier per il monitoraggio dello stato di integrità; tuttavia, durante le regioni errori, potresti perdere periodicamente del traffico poiché il rilevamento outlier utilizza i dati il traffico 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 al collegamento al servizio nell'istanza Apigee, mentre un gruppo di istanze gestite esegue il proxy del traffico all'endpoint di servizio. Il monitoraggio del controllo di integrità viene attivato sul 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 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 della sezione:

  • Per le installazioni peering non VPC:
      .
    1. Completa i passaggi da 1 a 6 del provisioning di Apigee per in base a abbonamenti oppure Installazioni con pagamento a consumo. Al momento, l'unica opzione è eseguire queste 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 queste 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 nella 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 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 creerai un gruppo di istanze gestite che proxy il traffico all'endpoint di servizio. Puoi quindi abilita 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 un subnet della tua rete VPC, segui i passaggi elencati in Attivazione della versione privata di Google Accesso.

2B. Imposta le variabili di ambiente

Le istruzioni in questa sezione usano le variabili di ambiente per fare riferimento all'uso ripetuto stringhe. 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, poi crea variabili con valori specifici per ogni 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. Corrono Debian 12 e avere 20 GB di disco. Lo script startup-script.sh configura il gruppo di istanze gestite per instradare il traffico in entrata dal carico di fatturazione 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, indipendentemente dal fatto che l'installazione in una o più regioni. In un passaggio successivo, assocerai queste credenziali con il proxy HTTPS di destinazione del bilanciatore del carico.

Puoi creare le credenziali con:

Per ulteriori informazioni creando e utilizzando certificati SSL per il bilanciatore del carico Google Cloud, vedi SSL certificati 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 il carico l'indirizzo IP del bilanciatore e aggiorna 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 al 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 configurazione di controlli di integrità più avanzati rispetto a un proxy specifico, consulta Esecuzione dei 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 e quindi creare regole che consentano al bilanciatore del carico per accedere al gruppo di istanze gestite. Devi eseguire questo passaggio una sola volta, ad esempio 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. Esegui questo comando per ottenere l'indirizzo IP riservato:
    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 record DNS e assicurati che il record DNS del tuo dominio si risolve nell'indirizzo IP del carico di Google Cloud con il bilanciatore del carico di rete passthrough esterno regionale. 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 comando 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 l'IP di origine di indirizzi IP esterni per il bilanciamento del carico di Google. Questa regola firewall consente a Google Cloud Load Balancing di richiede un controllo di integrità al gruppo di istanze gestite.

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