Upgrade von Apigee Hybrid auf Version 1.15 ausführen

Dieses Verfahren behandelt das Upgrade von der Apigee Hybrid-Version 1.14.x auf die Apigee Hybrid-Version 1.15.0.

Änderungen von Apigee Hybrid v1.14

Bitte beachten Sie die folgende Änderung:

  • Unterstützung großer Nachrichtennutzlasten:Ab Version 1.15 und auch im Patch-Release 1.14.2 unterstützt Apigee jetzt Nachrichtennutzlasten mit einer Größe von bis zu 30 MB. Weitere Informationen finden Sie unter:
  • Strengere Prüfungen der Klasseninstanziierung: In Apigee Hybrid enthält die JavaCallout-Richtlinie jetzt zusätzliche Sicherheitsmaßnahmen bei der Instanziierung von Java-Klassen. Die verbesserte Sicherheitsmaßnahme verhindert die Bereitstellung von Richtlinien, mit denen direkt oder indirekt versucht wird, Aktionen auszuführen, für die nicht zulässige Berechtigungen erforderlich sind.

    In den meisten Fällen funktionieren vorhandene Richtlinien weiterhin wie erwartet. Es besteht jedoch die Möglichkeit, dass Richtlinien, die auf Drittanbieterbibliotheken basieren oder benutzerdefinierten Code enthalten, der indirekt Vorgänge auslöst, für die erhöhte Berechtigungen erforderlich sind, betroffen sind.

Weitere Informationen zu den Funktionen in Hybrid-Version 1.14 finden Sie in den Versionshinweisen zu Apigee Hybrid v1.14.0.

Vorbereitung

Prüfen Sie vor dem Upgrade auf die Hybrid-Version 1.15, ob Ihre Installation die folgenden Anforderungen erfüllt:

Bevor Sie auf Version 1.15.0 aktualisieren – Einschränkungen und wichtige Hinweise

  • In Apigee Hybrid 1.15.0 wird ein neues, erweitertes Proxy-Limit pro Umgebung eingeführt, mit dem Sie mehr Proxys und freigegebene Abläufe in einer einzelnen Umgebung bereitstellen können. Unter Limits: API-Proxys finden Sie Informationen zu den Beschränkungen für die Anzahl der Proxys und freigegebenen Abläufe, die Sie pro Umgebung bereitstellen können. Diese Funktion ist nur für neu erstellte Hybridorganisationen verfügbar und kann nicht auf aktualisierte Organisationen angewendet werden. Wenn Sie diese Funktion verwenden möchten, führen Sie eine Neuinstallation von Hybrid 1.15.0 durch und erstellen Sie eine neue Organisation.

    Diese Funktion ist ausschließlich im Rahmen des Abos für 2024 verfügbar und unterliegt den Berechtigungen, die im Rahmen dieses Abos gewährt werden. Weitere Informationen zu dieser Funktion finden Sie unter Erweiterte Proxy-Limits pro Umgebung.

  • Das Upgrade auf Apigee Hybrid-Version 1.15 erfordert möglicherweise Ausfallzeiten.

    Beim Upgrade des Apigee-Controllers auf Version 1.15.0 wird für alle Apigee-Bereitstellungen ein rollierender Neustart ausgeführt. Achten Sie darauf, dass mindestens zwei Cluster in derselben oder in einer anderen Region/einem anderen Rechenzentrum ausgeführt werden, um während eines rollierenden Neustarts die Ausfallzeiten in hybriden Produktionsumgebungen zu minimieren. Leiten Sie den gesamten Produktionstraffic zu einem einzelnen Cluster und nehmen Sie den Cluster, für den Sie das Upgrade machen, offline. Danach können Sie mit dem Upgrade fortfahren. Wiederholen Sie den Vorgang für jeden Cluster.

    Apigee empfiehlt, alle Cluster so schnell wie möglich zu aktualisieren, um Auswirkungen auf die Produktion zu reduzieren. Es gibt keine zeitliche Begrenzung dafür, wann nach dem ersten Cluster alle weiteren Cluster aktualisiert werden müssen. Bis zur Aktualisierung aller verbleibenden Cluster funktioniert die Cassandra-Sicherung und -Wiederherstellung jedoch nicht mit gemischten Versionen. Beispielsweise kann eine Sicherung von Hybrid 1.14 nicht zum Wiederherstellen einer Hybrid 1.15-Instanz verwendet werden.

  • Änderungen an der Verwaltungsebene müssen während eines Upgrades nicht vollständig angehalten werden. Alle erforderlichen vorübergehenden Änderungen an der Verwaltungsebene sind unten in der Upgradeanleitung aufgeführt.

Upgrade auf Version 1.15.0 – Übersicht

Die Schritte zum Upgrade von Apigee Hybrid werden in den folgenden Abschnitten erläutert:

  1. Bereiten Sie das Upgrade vor..
  2. Installieren Sie die Hybrid-Laufzeitversion 1.15.0.

Upgrade auf Version 1.15 vorbereiten

Hybridinstallation sichern

  1. In dieser Anleitung wird die Umgebungsvariable APIGEE_HELM_CHARTS_HOME für das Verzeichnis in Ihrem Dateisystem verwendet, in dem Sie die Helm-Diagramme installiert haben. Wechseln Sie bei Bedarf in das Verzeichnis und definieren Sie die Variable mit dem folgenden Befehl:

    Linux

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    Mac OS

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    Windows

    set APIGEE_HELM_CHARTS_HOME=%CD%
    echo %APIGEE_HELM_CHARTS_HOME%
  2. Erstellen Sie eine Sicherungskopie Ihres $APIGEE_HELM_CHARTS_HOME/-Verzeichnisses der Version 1.14. Sie können einen beliebigen Sicherungsprozess verwenden. So können Sie beispielsweise eine tar-Datei Ihres gesamten Verzeichnisses erstellen:
    tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.14-backup.tar.gz $APIGEE_HELM_CHARTS_HOME
  3. Sichern Sie Ihre Cassandra-Datenbank entsprechend der Anleitung unter Cassandra-Sicherung und -Wiederherstellung.
  4. Wenn Sie Dienstzertifikatdateien (.json) in Ihren Überschreibungen zur Authentifizierung von Dienstkonten verwenden, müssen Sie darauf achten, dass sich die Zertifikatsdateien Ihres Dienstkontos im richtigen Helm-Diagrammverzeichnis befinden. Helm-Diagramme können keine Dateien außerhalb der einzelnen Diagrammverzeichnisse lesen.

    Dieser Schritt ist nicht erforderlich, wenn Sie Kubernetes-Secrets oder Workload Identity Federation for GKE zum Authentifizieren von Dienstkonten verwenden.

    Die folgende Tabelle zeigt das Ziel für jede Dienstkontodatei je nach Installationstyp:

    Prod

    Dienstkonto Standarddateiname Helm-Diagrammverzeichnis
    apigee-cassandra PROJECT_ID-apigee-cassandra.json $APIGEE_HELM_CHARTS_HOME/apigee-datastore/
    apigee-logger PROJECT_ID-apigee-logger.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-mart PROJECT_ID-apigee-mart.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-metrics PROJECT_ID-apigee-metrics.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-runtime PROJECT_ID-apigee-runtime.json $APIGEE_HELM_CHARTS_HOME/apigee-env
    apigee-synchronizer PROJECT_ID-apigee-synchronizer.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
    apigee-udca PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-watcher PROJECT_ID-apigee-watcher.json $APIGEE_HELM_CHARTS_HOME/apigee-org/

    Non-prod

    Erstellen Sie in jedem der folgenden Verzeichnisse eine Kopie der Dienstkontodatei apigee-non-prod:

    Dienstkonto Standarddateiname Helm-Diagrammverzeichnisse
    apigee-non-prod PROJECT_ID-apigee-non-prod.json $APIGEE_HELM_CHARTS_HOME/apigee-datastore/
    $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    $APIGEE_HELM_CHARTS_HOME/apigee-org/
    $APIGEE_HELM_CHARTS_HOME/apigee-env/
  5. Achten Sie darauf, dass sich Ihr TLS-Zertifikat und die Schlüsseldateien (.crt, .key und/oder .pem) im Verzeichnis $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/ befinden.

Aktualisieren Sie Ihre Kubernetes-Version

Prüfen Sie die Version Ihrer Kubernetes-Plattform und führen Sie bei Bedarf ein Upgrade Ihrer Kubernetes-Plattform auf eine Version durch, die sowohl von Hybrid 1.14 als auch von Hybrid 1.15 unterstützt wird. Weitere Informationen finden Sie in der Dokumentation der Plattform.

Istio-CRDs entfernen

Das Vorhandensein von istio.io-Custom Resource Definitions (CRDs) in einem Apigee Hybrid-Cluster kann zu Fehlern in apigee-ingressgateway-manager-Pods führen.

Weitere Informationen zu istio.io-CRDs in Apigee Hybrid finden Sie unter Bekanntes Problem 416634326.

  1. Mit dem folgenden Befehl können Sie ermitteln, ob Sie istio.io-CRDs in Ihrem Cluster haben:
    kubectl get crd -o custom-columns=NAME:metadata.name | grep istio.io

    Ihre Ausgabe sieht in etwa so aus, wenn Ihr Cluster istio.io CRDs hat:

    kubectl get crd -o custom-columns=NAME:metadata.name | grep istio.io
      authorizationpolicies.security.istio.io
      destinationrules.networking.istio.io
      envoyfilters.networking.istio.io
      gateways.networking.istio.io
      peerauthentications.security.istio.io
      proxyconfigs.networking.istio.io
      requestauthentications.security.istio.io
      serviceentries.networking.istio.io
      sidecars.networking.istio.io
      telemetries.telemetry.istio.io
      virtualservices.networking.istio.io
      wasmplugins.extensions.istio.io
      workloadentries.networking.istio.io
      workloadgroups.networking.istio.io
    
  2. Optional: Speichern Sie die CRDs lokal, falls Sie sie neu erstellen müssen:
    kubectl get crd $(cat istio-crd.csv) -o yaml > istio-crd.yaml
  3. Löschen Sie die istio.io-CRDs:

    Probelauf:

    kubectl delete crd $(cat istio-crd.csv) --dry-run=client

    Ausführen:

    kubectl delete crd $(cat istio-crd.csv)
  4. Listen Sie die ingress-manager-Pods auf, die neu installiert oder erstellt werden sollen:
    kubectl get deployments -n apigee

    Beispielausgabe:

    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-controller-manager       1/1     1            1           32d
    apigee-ingressgateway-manager   2/2     2            2           32d
    
  5. Starten Sie die ingress-manager-Pods neu:
    kubectl rollout restart deployment -n APIGEE_NAMESPACE apigee-ingressgateway-manager

Hybrid 1.15.0-Laufzeit installieren

Pipeline zur Datenerfassung konfigurieren

Ab Hybrid v1.14 ist die neue Pipeline für Analyse- und Debugging-Daten standardmäßig für alle Apigee Hybrid-Organisationen aktiviert. Sie müssen die Schritte unter Publisher-Zugriff auf Analytics aktivieren ausführen, um den Autorisierungsablauf zu konfigurieren.

Upgrade auf Helm-Diagramme vorbereiten

  1. Rufen Sie die Apigee Helm-Diagramme ab.

    Apigee Hybrid-Diagramme werden in Google Artifact Registry gehostet:

    oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts

    Kopieren Sie mit dem Befehl pull alle Apigee Hybrid-Helm-Diagramme in Ihren lokalen Speicher:

    export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
    export CHART_VERSION=1.15.0
    helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
    
  2. Aktualisieren Sie bei Bedarf Cert-Manager.

    Wenn Sie die Cert-Manager-Version aktualisieren müssen, installieren Sie die neue Version mit dem folgenden Befehl:

    kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.17.2/cert-manager.yaml
    

    Eine Liste der unterstützten Versionen finden Sie unter Unterstützte Plattformen und Versionen: cert-manager.

  3. Wenn Ihr Apigee-Namespace nicht apigee ist, bearbeiten Sie die apigee-operator/etc/crds/default/kustomization.yaml-Datei und ersetzen Sie den namespace-Wert durch Ihren Apigee-Namespace.
    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    
    namespace: APIGEE_NAMESPACE
    

    Wenn Sie apigee als Namespace verwenden, müssen Sie die Datei nicht bearbeiten.

  4. Installieren Sie die aktualisierten Apigee-CRDs:
    1. Verwenden Sie das Probelauf-Feature kubectl, indem Sie den folgenden Befehl ausführen:

      kubectl apply -k  apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run=server
      
    2. Führen Sie nach der Validierung mit dem Probelaufbefehl den folgenden Befehl aus:

      kubectl apply -k  apigee-operator/etc/crds/default/ \
        --server-side \
        --force-conflicts \
        --validate=false
      
    3. Prüfen Sie die Installation mit dem kubectl get crds-Befehl:
      kubectl get crds | grep apigee

      Ihre Ausgabe sollte in etwa so aussehen:

      apigeedatastores.apigee.cloud.google.com                    2024-08-21T14:48:30Z
      apigeedeployments.apigee.cloud.google.com                   2024-08-21T14:48:30Z
      apigeeenvironments.apigee.cloud.google.com                  2024-08-21T14:48:31Z
      apigeeissues.apigee.cloud.google.com                        2024-08-21T14:48:31Z
      apigeeorganizations.apigee.cloud.google.com                 2024-08-21T14:48:32Z
      apigeeredis.apigee.cloud.google.com                         2024-08-21T14:48:33Z
      apigeerouteconfigs.apigee.cloud.google.com                  2024-08-21T14:48:33Z
      apigeeroutes.apigee.cloud.google.com                        2024-08-21T14:48:33Z
      apigeetelemetries.apigee.cloud.google.com                   2024-08-21T14:48:34Z
      cassandradatareplications.apigee.cloud.google.com           2024-08-21T14:48:35Z
      
  5. Prüfen Sie die Labels auf den Clusterknoten. Standardmäßig plant Apigee Daten-Pods auf Knoten mit dem Label cloud.google.com/gke-nodepool=apigee-data und Laufzeit-Pods auf Knoten mit dem Label cloud.google.com/gke-nodepool=apigee-runtime. Sie können die Knotenpoollabels in der Datei overrides.yaml anpassen.

    Weitere Informationen finden Sie unter Dedizierte Knotenpools konfigurieren.

Apigee Hybrid-Helm-Diagramme installieren

  1. Wenn Sie dies nicht getan haben, rufen Sie das APIGEE_HELM_CHARTS_HOME-Verzeichnis auf. Führen Sie die folgenden Befehle in diesem Verzeichnis aus.
  2. Aktualisieren Sie den Apigee-Operator/-Controller:

    Probelauf:

    helm upgrade operator apigee-operator/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Aktualisieren Sie das Diagramm:

    helm upgrade operator apigee-operator/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Prüfen Sie die Installation des Apigee-Operators:

    helm ls -n APIGEE_NAMESPACE
    
    NAME       NAMESPACE       REVISION   UPDATED                                STATUS     CHART                   APP VERSION
    operator   apigee   3          2024-08-21 00:42:44.492009 -0800 PST   deployed   apigee-operator-1.15.0   1.15.0
    

    Prüfen Sie, ob er aktiv ist, indem Sie die Verfügbarkeit prüfen:

    kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
    
    NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-controller-manager   1/1     1            1           7d20h
    
  3. Aktualisieren Sie den Apigee-Datenspeicher:

    Probelauf:

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Aktualisieren Sie das Diagramm:

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Prüfen Sie dessen Status, um sicherzustellen, dassapigeedatastore aktiv ist.

    kubectl -n APIGEE_NAMESPACE get apigeedatastore default
    
    NAME      STATE       AGE
    default   running    2d
  4. Aktualisieren Sie die Apigee-Telemetrie:

    Probelauf:

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Aktualisieren Sie das Diagramm:

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Prüfen Sie den Status, um sicherzustellen, dass dieses Element aktiv ist:

    kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
    
    NAME               STATE     AGE
    apigee-telemetry   running   2d
  5. Führen Sie ein Upgrade von Apigee Redis durch:

    Probelauf:

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Aktualisieren Sie das Diagramm:

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Prüfen Sie den Status, um sicherzustellen, dass dieses Element aktiv ist:

    kubectl -n APIGEE_NAMESPACE get apigeeredis default
    
    NAME      STATE     AGE
    default   running   2d
  6. Aktualisieren Sie den Apigee-Ingress-Manager:

    Probelauf:

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Aktualisieren Sie das Diagramm:

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Prüfen Sie, ob er aktiv ist, indem Sie die Verfügbarkeit prüfen:

    kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
    
    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-ingressgateway-manager   2/2     2            2           2d
  7. Führen Sie ein Upgrade der Apigee-Organisation durch:

    Probelauf:

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Aktualisieren Sie das Diagramm:

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Prüfen Sie den Status der entsprechenden Organisation, um sicherzustellen, dass sie aktiv ist:

    kubectl -n APIGEE_NAMESPACE get apigeeorg
    
    NAME                      STATE     AGE
    apigee-org1-xxxxx          running   2d
  8. Führen Sie einen Upgrade für die Umgebung aus.

    Sie dürfen jeweils nur eine Umgebung installieren. Geben Sie die Umgebung mit --set env=ENV_NAME an.

    Probelauf:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    
    • ENV_RELEASE_NAME ist ein Name, der verwendet wird, um Installationen und Upgrades des Diagramms apigee-env nachzuverfolgen. Dieser Name muss sich von den anderen Helm-Releasenamen in Ihrer Installation unterscheiden. Normalerweise entspricht dies ENV_NAME. Wenn Ihre Umgebung jedoch denselben Namen wie Ihre Umgebungsgruppe hat, müssen Sie unterschiedliche Release-Namen für die Umgebung und die Umgebungsgruppe verwenden, z. B. dev-env-release und dev-envgroup-release. Weitere Informationen zu Releases in Helm finden Sie in der Helm-Dokumentation unter Three big concepts class="external".
    • ENV_NAME ist der Name der Umgebung, die Sie aktualisieren.
    • OVERRIDES_FILE ist die neue Überschreibungsdatei für Version 1.15.0.

    Aktualisieren Sie das Diagramm:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    

    Prüfen Sie, ob sie aktiv ist, indem Sie den Status der entsprechenden Umgebung prüfen:

    kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d
  9. Führen Sie ein Upgrade der Umgebungsgruppen (virtualhosts) durch.
    1. Sie dürfen jeweils nur eine Umgebungsgruppe (virtualhost) upgraden. Geben Sie die Umgebungsgruppe mit --set envgroup=ENV_GROUP_NAME an: Wiederholen Sie folgende Befehle für alle Umgebungsgruppen, die in der Datei overrides.yaml erwähnt werden:

      Probelauf:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE \
        --dry-run=server
      

      ENV_GROUP_RELEASE_NAME ist der Name, mit dem Sie zuvor das Diagramm apigee-virtualhost installiert haben. Normalerweise ist es ENV_GROUP_NAME.

      Aktualisieren Sie das Diagramm:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE
      
    2. Prüfen Sie den Status der ApigeeRoute (AR).

      Durch die Installation von virtualhosts wird ApigeeRouteConfig (ARC) erstellt. Dieses Element erstellt intern ApigeeRoute (ARC), nachdem der Apigee-Watcher die Umgebungsgruppendetails aus der Steuerungsebene abgerufen hat. Prüfen Sie daher, ob die entsprechende AR ausgeführt wird:

      kubectl -n APIGEE_NAMESPACE get arc
      
      NAME                                STATE   AGE
      apigee-org1-dev-egroup                       2d
      kubectl -n APIGEE_NAMESPACE get ar
      
      NAME                                        STATE     AGE
      apigee-org1-dev-egroup-xxxxxx                running   2d
  10. Nachdem Sie überprüft haben, dass alle Installationen erfolgreich aktualisiert wurden, löschen Sie die ältere apigee-operator-Version aus dem apigee-system-Namespace.
    1. Deinstallieren Sie den alten operator-Release:
      helm delete operator -n apigee-system
      
    2. Löschen Sie den Namespace apigee-system:
      kubectl delete namespace apigee-system
      
  11. Führen Sie noch einmal ein Upgrade von operator in Ihrem Apigee-Namespace durch, um die gelöschten Ressourcen mit Clusterbereich neu zu installieren:
    helm upgrade operator apigee-operator/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml
    

Mit diesem Verfahren können Sie das Verhalten der JavaCallout-Richtlinie nach dem Upgrade von Version 1.14.0 validieren.

  1. Prüfen, ob die Java-JAR-Dateien unnötige Berechtigungen anfordern

    Prüfen Sie nach der Bereitstellung der Richtlinie die Laufzeitlogs, um festzustellen, ob die folgende Logmeldung vorhanden ist: "Failed to load and initialize class ...". Wenn Sie diese Meldung sehen, bedeutet das, dass für das bereitgestellte JAR unnötige Berechtigungen angefordert wurden. Um dieses Problem zu beheben, untersuchen Sie den Java-Code und aktualisieren Sie die JAR-Datei.

  2. Java-Code untersuchen und aktualisieren

    Überprüfen Sie den Java-Code (einschließlich der Abhängigkeiten), um die Ursache für möglicherweise unzulässige Vorgänge zu ermitteln. Ändern Sie den Quellcode bei Bedarf.

  3. Richtlinien mit aktiviertem Sicherheitscheck testen:

    Aktivieren Sie in einer nicht produktiven Umgebung das Flag für die Sicherheitsprüfung und stellen Sie Ihre Richtlinien mit einem aktualisierten JAR noch einmal bereit. So legen Sie das Flag fest:

    • Legen Sie in der Datei apigee-env/values.yaml unter runtime:cwcAppend: den Wert conf_security-secure.constructor.only auf true fest. Beispiel:
      # Apigee Runtime
      runtime:
        cwcAppend:
          conf_security-secure.constructor.only: true
    • Aktualisieren Sie das apigee-env-Diagramm für die Umgebung, um die Änderung anzuwenden. Beispiel:
      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --set env=ENV_NAME \
        -f OVERRIDES_FILE

        ENV_RELEASE_NAME ist ein Name, der verwendet wird, um Installationen und Upgrades des apigee-env-Diagramms zu verfolgen. Dieser Name muss sich von den anderen Helm-Releasenamen in Ihrer Installation unterscheiden. Normalerweise entspricht dies ENV_NAME. Wenn Ihre Umgebung jedoch denselben Namen wie Ihre Umgebungsgruppe hat, müssen Sie unterschiedliche Release-Namen für die Umgebung und die Umgebungsgruppe verwenden, z. B. dev-env-release und dev-envgroup-release. Weitere Informationen zu Releases in Helm finden Sie in der Helm-Dokumentation unter Three big concepts class="external".

    Wenn die Log-Meldung "Failed to load and initialize class ..." weiterhin vorhanden ist, ändern und testen Sie das JAR so lange, bis die Log-Meldung nicht mehr angezeigt wird.

  4. Sicherheitscheck in der Produktionsumgebung aktivieren

    Nachdem Sie die JAR-Datei in der Nicht-Produktionsumgebung gründlich getestet und geprüft haben, aktivieren Sie die Sicherheitsprüfung in Ihrer Produktionsumgebung, indem Sie das Flag conf_security-secure.constructor.only auf true setzen und das apigee-env-Diagramm für die Produktionsumgebung aktualisieren, um die Änderung zu übernehmen.

Rollback zu einer vorherigen Version durchführen

Wenn Sie ein Rollback auf die vorherige Version durchführen möchten, verwenden Sie die ältere Diagrammversion, um den Upgradeprozess in umgekehrter Reihenfolge zurückzusetzen. Beginnen Sie mit apigee-virtualhost und arbeiten Sie sich zurück zu apigee-operator. Setzen Sie dann die CRDs wieder auf den vorherigen Zustand zurück.

  1. Setzen Sie alle Diagramme von apigee-virtualhost bis apigee-datastore auf die Standardeinstellungen zurück. Bei den folgenden Befehlen wird davon ausgegangen, dass Sie die Diagramme aus der vorherigen Version (v1.14.x) verwenden.

    Führen Sie den folgenden Befehl für jede Umgebungsgruppe aus:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace apigee \
      --atomic \
      --set envgroup=ENV_GROUP_NAME \
      -f 1.14_OVERRIDES_FILE
    

    Führen Sie den folgenden Befehl für jede Umgebung aus:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f 1.14_OVERRIDES_FILE
    

    Setzen Sie die restlichen Diagramme mit Ausnahme von apigee-operator auf die Standardeinstellungen zurück.

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f 1.14_OVERRIDES_FILE
    
    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      --atomic \
      -f 1.14_OVERRIDES_FILE
    
    helm upgrade redis apigee-redis/ \
      --install \
      --namespace apigee \
      --atomic \
      -f 1.14_OVERRIDES_FILE
    
    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      --atomic \
      -f 1.14_OVERRIDES_FILE
    
    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      --atomic \
      -f 1.14_OVERRIDES_FILE
    
  2. Erstellen Sie den Namespace apigee-system.
    kubectl create namespace apigee-system
    
  3. Patchen Sie die Ressourcenannotation zurück auf den Namespace apigee-system.
    kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='apigee-system'
    
  4. Wenn Sie auch den Release-Namen geändert haben, aktualisieren Sie die Annotation mit dem Release-Namen operator.
    kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-name='operator'
    
  5. Installieren Sie apigee-operator wieder im Namespace apigee-system.
    helm upgrade operator apigee-operator/ \
      --install \
      --namespace apigee-system \
      --atomic \
      -f 1.14_OVERRIDES_FILE
    
  6. Machen Sie die CRDs rückgängig, indem Sie die älteren CRDs neu installieren.
    kubectl apply -k apigee-operator/etc/crds/default/ \
      --server-side \
      --force-conflicts \
      --validate=false
    
  7. Bereinigen Sie die apigee-operator-Version aus dem APIGEE_NAMESPACE-Namespace, um das Rollback abzuschließen.
    helm uninstall operator -n APIGEE_NAMESPACE
    
  8. Einige Ressourcen auf Clusterebene, z. B. clusterIssuer, werden gelöscht, wenn operator deinstalliert wird. Installieren Sie sie mit dem folgenden Befehl neu:
    helm upgrade operator apigee-operator/ \
      --install \
      --namespace apigee-system \
      --atomic \
      -f 1.14_OVERRIDES_FILE