Von Apigee verwaltete Instanzgruppen aktualisieren

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

Apigee Edge-Dokumentation aufrufen

In diesem Dokument wird beschrieben, wie Sie verwaltete Compute Engine-Instanzgruppen prüfen und aktualisieren, die Northbound-Traffic an Apigee weiterleiten.

Übersicht

Bei einigen Apigee-Bereitstellungen wird Proxy-Traffic von einem Load Balancer über Compute Engine-MIGs geleitet, die in Ihrem Projekt ausgeführt werden, und Anfragen an den Apigee-Laufzeitendpunkt weitergeleitet, einschließlich Northbound-Load-Balancing und aktiver Systemdiagnosen mit Private Service Connect. Apigee verwaltet diese MIGs nicht. Als Best Practice für Sicherheit und Zuverlässigkeit müssen Sie diese MIGs und ihre VMs selbst verfolgen, verwalten und aktualisieren, um mit dem Compute Engine-Betriebssystemlebenszyklus auf dem neuesten Stand zu bleiben.

Wenn ein Betriebssystem das Ende des Lebenszyklus erreicht, entfernt Compute Engine den Image-Familien-Alias für neue VMs. Vorhandene VMs in der MIG werden weiterhin ausgeführt und überstehen Live-Hostwartungsereignisse. Wenn die MIG jedoch versucht, während des Autoscalings, der automatischen Reparatur oder eines rollierenden Ersatzes eine neue VM zu erstellen, schlägt die VM-Erstellung fehl, da die Quell-Image-Familie nicht mehr gefunden wird. Wenn fehlerfreie Proxy-VMs nicht mehr verfügbar sind, gibt der Load Balancer HTTP 502 Bad Gateway-Fehler zurück und der API-Traffic wird beendet.

Hinweis

Die Befehle in diesem Dokument sind Beispiele. In Ihrer Bereitstellung werden möglicherweise andere Netzwerk-Tags, Maschinentypen, Laufwerksgrößen, Metadaten oder VM-Anzahlen verwendet. Prüfen Sie zuerst Ihre vorhandene Konfiguration und passen Sie die Befehls-Flags an Ihre Umgebung an.

Ersetzen Sie die folgenden Platzhalter in den Beispielbefehlen durch Werte aus Ihrer Umgebung:

  • PROJECT_ID: die Google Cloud -Projekt-ID, in der Ihre MIGs und Instanzvorlagen bereitgestellt werden.
  • REGION: die Compute Engine-Region Ihrer MIG.
  • EXISTING_MIG_NAME: der Name Ihrer vorhandenen MIG.
  • OLD_TEMPLATE_NAME: der Name der Instanzvorlage, die an EXISTING_MIG_NAME angehängt ist.
  • NEW_TEMPLATE_NAME: der Name der neuen Instanzvorlage, die Sie erstellen.
  • VPC_NAME: der Name des VPC-Netzwerk, das von Ihrer MIG verwendet wird.
  • VPC_SUBNET: der Name des VPC-Subnetzes in REGION, das von Ihrer MIG verwendet wird.
  • IMAGE_FAMILY: eine unterstützte Betriebssystem-Image-Familie aus den Compute Engine-Betriebssystemdetails.
  • IMAGE_PROJECT: das Image-Projekt, das IMAGE_FAMILY enthält.
  • APIGEE_ENDPOINT: die Ziel-IP-Adresse, die in den ENDPOINT-Metadaten Ihrer vorhandenen Instanzvorlage konfiguriert ist.
  • STARTUP_SCRIPT_URL: die Cloud Storage-URL, die in den startup-script-url-Metadaten Ihrer vorhandenen Instanzvorlage konfiguriert ist.

MIGs und Instanzvorlagen prüfen

Apigee-Routing-MIGs verwenden in der Regel das Tag apigee-mig-proxy und die Metadaten ENDPOINT. Führen Sie die folgenden Schritte aus, um Ihre MIGs und Instanzvorlagen zu prüfen:

  1. Listen Sie die MIGs in Ihrem Projekt auf und identifizieren Sie die angehängten Instanzvorlagen:

    gcloud compute instance-groups managed list --project=PROJECT_ID \
      --format="table(name,region.basename(),zone.basename(),instanceTemplate.basename())"
    
  2. Prüfen Sie das Quell-Betriebssystem-Image Ihrer vorhandenen Instanzvorlage. Fügen Sie --region=REGION hinzu, wenn die Vorlage regional ist:

    gcloud compute instance-templates describe OLD_TEMPLATE_NAME \
      --project=PROJECT_ID \
      --format="value(properties.disks[0].initializeParams.sourceImage)"
    
  3. Prüfen Sie den Maschinentyp, die Laufwerkskonfiguration, das Netzwerk, das Subnetz, die Tags und die Metadaten von OLD_TEMPLATE_NAME, damit Sie diese Einstellungen beim Erstellen der neuen Vorlage abgleichen können. Fügen Sie --region=REGION hinzu, wenn die Vorlage regional ist:

    gcloud compute instance-templates describe OLD_TEMPLATE_NAME \
      --project=PROJECT_ID \
      --format="yaml(properties.machineType,properties.disks,properties.networkInterfaces,properties.tags,properties.metadata)"
    

Neue Instanzvorlage erstellen und Rolling Update ausführen

Erstellen Sie eine neue Instanzvorlage mit einer unterstützten Betriebssystem-Image-Familie und starten Sie ein Rolling Update für die MIG. Wenn Sie --max-surge mit --max-unavailable=0 verwenden, werden neue VMs bereitgestellt und überprüft, bevor alte Instanzen geleert und entfernt werden. Dadurch werden Traffic-Unterbrechungen verhindert, auch wenn neue VMs aufgrund eines Ressourcenmangels oder eines Konfigurationsfehlers nicht gestartet werden können.

  1. Ich erstelle eine neue Instanzvorlage. Der folgende Befehl ist ein Beispiel. Passen Sie das Netzwerk, das Subnetz, die Tags, den Maschinentyp, die Laufwerksgröße und die Metadaten an Ihre vorhandene Vorlagenkonfiguration an:

    gcloud compute instance-templates create NEW_TEMPLATE_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=IMAGE_FAMILY \
      --image-project=IMAGE_PROJECT \
      --boot-disk-size=20GB \
      --no-address \
      --metadata=ENDPOINT=APIGEE_ENDPOINT,startup-script-url=STARTUP_SCRIPT_URL
    

    Mit diesem Befehl wird eine globale Instanzvorlage unter projects/PROJECT_ID/global/instanceTemplates/NEW_TEMPLATE_NAME erstellt. Wenn Sie eine regionale Instanzvorlage erstellen möchten, fügen Sie --instance-template-region=REGION hinzu und verwenden Sie im nächsten Schritt projects/PROJECT_ID/regions/REGION/instanceTemplates/NEW_TEMPLATE_NAME.

  2. Starten Sie ein Rolling Update für die MIG. Passen Sie --max-surge bei Bedarf an die Größe und das Kontingent Ihrer MIG an:

    gcloud compute instance-groups managed rolling-action start-update EXISTING_MIG_NAME \
      --project=PROJECT_ID \
      --region=REGION \
      --version=template=projects/PROJECT_ID/global/instanceTemplates/NEW_TEMPLATE_NAME \
      --max-surge=3 \
      --max-unavailable=0
    
  3. Prüfen Sie, ob alle VMs in der MIG NEW_TEMPLATE_NAME ausführen und den Status RUNNING melden:

    gcloud compute instance-groups managed list-instances EXISTING_MIG_NAME \
      --project=PROJECT_ID \
      --region=REGION
    

Nächste Schritte