Questa pagina si applica ad Apigee, ma non ad Apigee hybrid.
Visualizza
Apigee Edge documentazione.
Questo documento spiega come utilizzare Apigee per configurare il controllo di integrità attivo quando utilizzi Private Service Connect per il routing di rete in direzione nord (traffico dai client ad Apigee). Il controllo di integrità attivo è utile per evitare la perdita di traffico di rete in caso di errore a livello di regione.
Panoramica
Questo documento descrive un pattern basato su un gruppo di istanze gestite (MIG) per eseguire il controllo di integrità attivo sulle istanze Apigee raggiunte tramite Private Service Connect. Puoi utilizzare questo pattern se preferisci gestire tu stesso l'infrastruttura di controllo di integrità anziché attivare il controllo di integrità PSC integrato (vedi la nota sopra).
Puoi utilizzare il rilevamento di valori anomali per il monitoraggio dello stato di integrità. Tuttavia, durante gli errori a livello di regione, potresti perdere periodicamente una certa quantità di traffico, poiché il rilevamento di valori anomali utilizza il traffico in tempo reale come indicatori. Il rilevamento di valori anomali reindirizza periodicamente una parte del traffico in tempo reale per verificare l'integrità della regione non riuscita.
La Figura 1 mostra l'architettura proposta. Un endpoint di servizio si connette al collegamento del servizio nell'istanza Apigee, e un MIG instrada il traffico verso l'endpoint di servizio. Abilita il monitoraggio del controllo di integrità sul MIG.
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 che non lo utilizzano. Tuttavia, nel caso di un'installazione con peering VPC, la tecnica di controllo di integrità attivo descritta qui si applica solo se utilizzi Private Service Connect per la configurazione del routing.
Prima di eseguire i passaggi descritti in questa sezione:
- Per le installazioni senza peering VPC :
- Completa i passaggi di provisioning di Apigee da 1 a 6 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.
- Salta il passaggio 7: Configura il routing ed esegui invece i passaggi seguenti.
- Per le installazioni con peering VPC che utilizzano Private Service Connect per il routing:
- Completa i passaggi di provisioning di Apigee da 1 a 7 per installazioni basate su abbonamento o con pagamento a consumo. Al momento, l'unica opzione è eseguire questi passaggi utilizzando l'interfaccia a riga di comando.
- Salta il passaggio 8: Configura il routing ed esegui invece i passaggi seguenti.
1. Configura un endpoint di servizio Private Service Connect per il collegamento del servizio Apigee
In questo passaggio, crei un endpoint di servizio Private Service Connect che punta al collegamento del servizio nell'istanza Apigee:
- Recupera il collegamento del 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"
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" } ] }
- Crea un endpoint di servizio Private Service Connect che punti al collegamento del 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 MIG che punti all'endpoint di servizio
In questo passaggio, crei un MIG che instrada il traffico verso l'endpoint di servizio. Puoi quindi abilitare il controllo di integrità attivo sul MIG.
2A. Abilita l'accesso privato Google per una subnet della rete VPC
Per abilitare l'accesso privato Google per una subnet della rete VPC, segui i passaggi elencati in Abilitare l'accesso privato Google Accesso.
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 impostarle prima di continuare:
MIG_NAME=YOUR_MIG_NAME # A name you provide for the MIGVPC_NAME=default # If you are using a shared VPC, use the shared VPC nameVPC_SUBNET=default # Private Google Access must be enabled for this subnetREGION=RUNTIME_REGION # The same region as your Apigee runtime instanceSERVICE_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 ogni regione.
2C. Crea un gruppo di istanze gestite
In questo passaggio, crei e configuri un gruppo di istanze gestite (MIG).
- Crea un template di istanza eseguendo il comando seguente.
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 scriptstartup-script.shconfigura il MIG per instradare il traffico in entrata dal bilanciatore di carico all'istanza Apigee. - Crea un gruppo di istanze gestite eseguendo il comando seguente:
gcloud compute instance-groups managed create $MIG_NAME \ --project $PROJECT_ID --base-instance-name apigee-mig \ --size 2 --template $MIG_NAME --region $REGION
- Configura la scalabilità automatica per il gruppo eseguendo il comando seguente:
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
- Definisci una porta denominata eseguendo il comando seguente:
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 SSL e una chiave per il bilanciatore del carico
Devi creare le credenziali una sola volta, indipendentemente dal fatto che l'installazione sia 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:
- Il tuo certificato da un'autorità di certificazione
- Un certificato SSL gestito da Google
- Un certificato autofirmato (non consigliato per la produzione).
Per saperne di più sulla creazione e sull'utilizzo dei certificati SSL per il bilanciatore del carico Google Cloud, consulta Certificati SSL e Panoramica dei certificati SSL.
Nell'esempio seguente, creiamo un certificato SSL gestito da Google:
- Crea queste variabili di ambiente:
CERTIFICATE_NAME=YOUR_CERT_NAME
DOMAIN_HOSTNAME=YOUR_DOMAIN_HOSTNAMEImposta
DOMAIN_HOSTNAMEsu 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 essere simile a questo:foo.example.com. - 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 controllare lo stato del 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à
- Crea un controllo di integrità:
gcloud compute health-checks create https HEALTH_CHECK_NAME \ --project $PROJECT_ID --port 443 --global \ --request-path /healthz/ingressUtilizzerai questo controllo di integrità per assicurarti 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à.
- 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 - Aggiungi il MIG al servizio di backend con il comando seguente:
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
- Crea una mappa URL di bilanciamento del carico con il comando seguente:
gcloud compute url-maps create MIG_PROXY_MAP_NAME \ --project $PROJECT_ID --default-service PROXY_BACKEND_NAME - Crea un proxy HTTPS di destinazione per il bilanciamento del carico con il comando seguente:
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 poi creare regole che consentano al bilanciatore del carico di accedere al MIG. Devi eseguire questo passaggio una sola volta, indipendentemente dal fatto che l'installazione sia in una o più regioni.
- Prenota un indirizzo IP per il bilanciatore del carico:
gcloud compute addresses create ADDRESSES_NAME \ --project $PROJECT_ID \ --ip-version=IPV4 \ --global - Crea una regola di forwarding globale con il comando seguente:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --project $PROJECT_ID --address ADDRESSES_NAME --global \ --target-https-proxy MIG_HTTPS_PROXY_NAME --ports 443 - Recupera l'indirizzo IP riservato eseguendo il comando seguente:
gcloud compute addresses describe ADDRESSES_NAME \ --project $PROJECT_ID --format="get(address)" --global - Passaggio importante: vai al sito, all'host DNS o all'ISP in cui vengono 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 Aggiorna i record DNS A e AAAA in modo che puntino all'indirizzo IP del bilanciatore del carico.
- Crea una regola firewall che consenta al bilanciatore del carico di accedere al MIG utilizzando il
comando seguente:
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/22e35.191.0.0/16sono gli intervalli di indirizzi IP di origine per Google Cloud Load Balancing. Questa regola firewall consente a Google Cloud Load Balancing di effettuare richieste di controllo di integrità al MIG.
Il provisioning di Apigee è completato. Vai a Eseguire il deployment di un proxy di esempio.