Aktive Systemdiagnose für regionales Failover mit PSC konfigurieren

Diese Seite gilt für Apigee, aber nicht für Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

In diesem Dokument wird erläutert, wie Sie Apigee für die Konfiguration von aktiven Systemdiagnose konfigurieren für Fälle, in denen Sie Private Service Connect (PSC) für das Netzwerk-Routing nach Norden (Traffic von Clients zu Apigee). Eine aktive Systemdiagnose kann bei einem regionalen Ausfall einen Verlust des Netzwerkverkehrs verhindern.

Überblick

Wenn Sie PSC für das Apigee-Netzwerk-Routing nach Norden verwenden möchten, folgen Sie der Anleitung in diesem Dokument, um eine aktive Systemdiagnose zu konfigurieren. Derzeit unterstützt PSC kein aktives Monitoring der Systemdiagnose. Sie können diese Einschränkung von PSC umgehen, indem Sie die Apigee-Installationskonfiguration so ändern, dass eine verwaltete Instanzgruppe (MIG) verwendet wird, die eine aktive Systemdiagnosefunktion ermöglicht.

Sie könnten zum Beispiel Ausreißererkennung für die Statusüberwachung verwenden, aber während regionaler Ausfälle kann es vorkommen, dass Sie regelmäßig einen Teil des Traffics verlieren, da die Ausreißererkennung Traffic in Echtzeit als Indikatoren verwendet. Die Ausreißererkennung leitet einen Teil des Live-Traffics regelmäßig um, um den Status der fehlerhaften Region zu prüfen.

Abbildung 1 zeigt die vorgeschlagene Architektur. Ein Dienstendpunkt stellt eine Verbindung zum Dienstanhang in der Apigee-Instanz her und eine verwaltete Instanzgruppe leitet den Datenverkehr an den Dienstendpunkt weiter. Sie aktivieren das Systemdiagnose-Monitoring für die verwaltete Instanzgruppe.

Abbildung 1. Apigee-Architektur für eine aktive Systemdiagnose ohne VPC-Peering.

Ansatz der auf der verwalteten Instanzgruppe basierenden Systemdiagnose

Vorbereitung

Sie können die in diesem Dokument beschriebene Technik auf Apigee-Installationen anwenden, die VPC-Peering verwenden, oder verwenden Sie kein VPC-Peering. Bei einer VPC-Peering-Installation ist die hier beschriebene aktive Systemdiagnosetechnik nur gültig, wenn Sie PSC für die Routing-Konfiguration verwenden.

Bevor Sie die Schritte in diesem Abschnitt ausführen:

  • Für Nicht-VPC-Peering-Installationen:
    1. Führen Sie die Schritte 1 bis 6 der Apigee-Bereitstellung für abobasierte oder Pay as you go-Installationen durch. Derzeit besteht die einzige Möglichkeit darin, diese Schritte über die Befehlszeile ausführen.
    2. Überspringen Sie „Schritt 7: Routing konfigurieren“ und führen Sie stattdessen die folgenden Schritte aus.
  • Für VPC-Peering-Installationen, die PSC für das Routing verwenden:
    1. Apigee-Bereitstellungsschritte 1 bis 7 für abobasierte oder Pay as you go-Installationen ausführen. Derzeit besteht die einzige Möglichkeit darin, diese Schritte über die Befehlszeile ausführen.
    2. Überspringen Sie „Schritt 8: Routing konfigurieren“ und führen Sie stattdessen die folgenden Schritte aus.

1) PSC-Dienstendpunkt für den Apigee-Dienstanhang konfigurieren

In diesem Schritt erstellen Sie einen PSC-Dienstendpunkt, der auf den Dienstanhang in der Apigee-Instanz verweist:

  1. Rufen Sie den Dienstanhang aus der zuvor erstellten Apigee-Instanz ab:
    curl -i -X GET -H "Authorization: Bearer $AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    In der folgenden Beispielausgabe ist der Wert serviceAttachment fett dargestellt:

    {
      "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. Erstellen Sie einen PSC-Dienstendpunkt, der auf den Dienstanhang verweist, den Sie im vorherigen Schritt aus dem Antworttext der Instanz erhalten haben, wie unter Private Service Connect-Endpunkt erstellen beschrieben.

2. Verwaltete Instanzgruppe konfigurieren, die auf den Dienstendpunkt verweist

In diesem Schritt erstellen Sie eine verwaltete Instanzgruppe, die Traffic an den Dienstendpunkt weiterleitet. Anschließend können Sie die aktive Systemdiagnose für die verwaltete Instanzgruppe aktivieren.

2A. Aktivieren Sie den privaten Google-Zugriff für ein Subnetz Ihres VPC-Netzwerks.

Führen Sie die Schritte unter Privaten Google-Zugriff aktivieren aus, um den privaten Google-Zugriff für ein Subnetz Ihres VPC-Netzwerks zu aktivieren.

2B. Umgebungsvariablen festlegen

In der Anleitung in diesem Abschnitt werden Umgebungsvariablen verwendet, um auf wiederholt verwendete Strings zu verweisen. Wir empfehlen, diese festzulegen, bevor Sie fortfahren:

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

Diese Variablen werden Sie in den nachfolgenden Vorgängen mehrmals verwenden. Wenn Sie mehrere Regionen konfigurieren möchten, erstellen Sie Variablen mit für jede Region spezifischen Werten.

2C. Erstellen Sie eine verwaltete Instanzgruppe.

In diesem Schritt erstellen und konfigurieren Sie eine verwaltete Instanzgruppe (MIG).

  1. Erstellen Sie mit dem folgenden Befehl eine Instanzvorlage.
    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

    Wie Sie anhand dieses Befehls sehen können, sind Maschinen vom Typ e2-medium. Sie führen Debian 12 aus und haben 20 GB Speicherplatz. Das Skript startup-script.sh konfiguriert die MIG so, dass eingehender Traffic vom Load-Balancer an die Apigee-Instanz weitergeleitet wird.

  2. Erstellen Sie mit folgendem Befehl eine verwaltete Instanzgruppe:
    gcloud compute instance-groups managed create $MIG_NAME \
    --project $PROJECT_ID --base-instance-name apigee-mig \
    --size 2 --template $MIG_NAME --region $REGION
  3. Konfigurieren Sie das Autoscaling für die Gruppe mit folgendem Befehl:
    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. Definieren Sie mit folgendem Befehl einen benannten Port:
    gcloud compute instance-groups managed set-named-ports $MIG_NAME \
    --project $PROJECT_ID --region $REGION --named-ports https:443

3. Load Balancer mit Systemdiagnose-Monitoring konfigurieren

In den folgenden Schritten konfigurieren Sie einen Load Balancer mit Systemdiagnose-Monitoring.

3A. SSL-Zertifikat und Schlüssel für den Load Balancer erstellen

Die Anmeldedaten müssen nur einmal erstellt werden, unabhängig davon, ob Sie in einer oder mehreren Regionen installieren. Später verknüpfen Sie diese Anmeldedaten mit dem Ziel-HTTPS-Proxy des Load-Balancers.

Sie können die Anmeldedaten mit folgendem Befehl erstellen:

Weitere Informationen zum Erstellen und Verwenden von SSL-Zertifikaten für den Google Cloud-Load-Balancer finden Sie unter SSL-Zertifikate und Übersicht über SSL-Zertifikate.

Im folgenden Beispiel erstellen wir ein von Google verwaltetes SSL-Zertifikat:

  1. Erstellen Sie folgende Umgebungsvariablen:
    CERTIFICATE_NAME=YOUR_CERT_NAME
    DOMAIN_HOSTNAME=YOUR_DOMAIN_HOSTNAME 

    Setzen Sie DOMAIN_HOSTNAME auf einen gültigen Domainnamen, den Sie registriert haben. In einem späteren Schritt erhalten Sie die IP-Adresse des Load-Balancers und aktualisieren den Domain-A-Eintrag so, dass er auf diese Adresse verweist. Ein Domainhostname könnte beispielsweise so aussehen: foo.example.com.

  2. Führen Sie den Befehl gcloud compute ssl-certificates create aus:
    gcloud compute ssl-certificates create $CERTIFICATE_NAME \
    --domains=$DOMAIN_HOSTNAME \
    --project $PROJECT_ID \
    --global

    Es kann bis zu einer Stunde dauern, bis das Zertifikat bereitgestellt wird. Führen Sie folgenden Befehl aus, um den Status der Bereitstellung zu überprüfen:

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

3B. Systemdiagnose erstellen

  1. Erstellen Sie eine Systemdiagnose:
    gcloud compute health-checks create https HEALTH_CHECK_NAME \
    --project $PROJECT_ID --port 443 --global \
    --request-path /healthz/ingress

    Anhand dieser Systemdiagnose können Sie prüfen, ob der Back-End-Dienst ausgeführt wird. Informationen zum Konfigurieren erweiterter Systemdiagnosen für einen bestimmten Proxy finden Sie unter Systemdiagnosen durchführen.

  2. Erstellen Sie einen Backend-Dienst:
    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. Add the MIG to your backend service with the following command:
    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. Erstellen Sie mit folgendem Befehl eine Load Balancing-URL-Zuordnung:
    gcloud compute url-maps create MIG_PROXY_MAP_NAME \
    --project $PROJECT_ID --default-service PROXY_BACKEND_NAME
  5. Erstellen Sie mit folgendem Befehl einen Ziel-HTTPS-Proxy für das Load Balancing:
    gcloud compute target-https-proxies create MIG_HTTPS_PROXY_NAME \
    --project $PROJECT_ID --url-map MIG_PROXY_MAP_NAME \
    --ssl-certificates $CERTIFICATE_NAME

3C. Reservierte IP-Adresse abrufen und Firewallregeln erstellen

Sie müssen dem Load-Balancer eine IP-Adresse zuweisen und dann Regeln erstellen, die dem Load-Balancer den Zugriff auf die MIG ermöglichen. Dieser Schritt muss nur einmal ausgeführt werden, unabhängig davon, ob Sie die Installation in einer oder mehreren Regionen vornehmen.

  1. Reservieren Sie eine IP-Adresse für den Load Balancer:
    gcloud compute addresses create ADDRESSES_NAME \
    --project $PROJECT_ID \
    --ip-version=IPV4 \
    --global
  2. Erstellen Sie mit folgendem Befehl eine globale Weiterleitungsregel:
    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. Rufen Sie mit folgendem Befehl eine reservierte IP-Adresse ab:
    gcloud compute addresses describe ADDRESSES_NAME \
    --project $PROJECT_ID --format="get(address)" --global
  4. Wichtig: Rufen Sie die Website, den DNS-Host oder den ISP auf, bei dem Ihre DNS-Einträge verwaltet werden, und achten Sie darauf, dass der DNS-Eintrag Ihrer Domain in die IP-Adresse des Google Cloud Load-Balancers aufgelöst wird. Diese Adresse ist der im letzten Schritt zurückgegebene IP-Wert. Weitere Informationen finden Sie unter DNS-A- und AAAA-Einträge aktualisieren, sodass sie auf die IP-Adresse des Load-Balancers verweisen.
  5. Erstellen Sie mithilfe des folgenden Befehls eine Firewallregel, mit der der Load-Balancer auf die MIG zugreifen kann:
    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

    Beachten Sie, dass die IP-Adressbereiche 130.211.0.0/22 und 35.191.0.0/16 die Quell-IP-Adressbereiche für Google Load Balancing sind. Mit dieser Firewallregel kann Google Cloud Load-Balancing Systemdiagnoseanfragen an die MIG senden.

Die Bereitstellung von Apigee ist abgeschlossen. Gehen Sie zu Beispielproxy bereitstellen.