Mehrere Hybrid-Organisationen einem Cluster hinzufügen

In diesem Thema wird erläutert, wie Sie eine zweite Apigee Hybrid-Organisation (org) zu einem vorhandenen Kubernetes-Cluster hinzufügen. In dieser Konfiguration mit mehreren Organisationen verwenden beide Organisationen denselben Cassandra-Ring. Für jede Organisation können mehrere Umgebungen und Umgebungsgruppen konfiguriert sein.

Beschränkungen

Eine Konfiguration mit mehrere Organisationen pro Cluster wird mit den folgenden Einschränkungen unterstützt: Wir empfehlen, diese Konfiguration nicht zu verwenden, bis diese Einschränkungen gemindert sind.

  • Wenn Sie mehrere Apigee Hybrid-Instanzen haben möchten, sollte jede Instanz einen eigenen Cluster haben. Mehrere Apigee Hybrid-Instanzen, die auf demselben Kubernetes-Cluster ausgeführt werden, können zu Instabilitäten führen, die möglicherweise zu Ausfallzeiten führen.
  • Das gesamte Logging aus den Pods wird an das erste konfigurierte Google Cloud-Projekt gesendet. Diese Einschränkung ist im Cloud Logging-Tool am deutlichsten erkennbar. Die Logs für die anderen Apigee-Organisationen werden nicht an das entsprechende Google Cloud-Projekt gesendet. Logs werden weiterhin auf Pod-Ebene erfasst und können mit kubectl-Befehlen abgerufen werden. Sie werden jedoch nicht über Cloud Logging an das richtige Cloud-Projekt gesendet.
  • Sie können Organisationsdaten in der Cassandra-Datenbank nicht nur für eine Organisation löschen. Dies bedeutet, dass sich Organisationen nicht selektiv entfernen lassen. Jede Änderung an der Datenbankkonfiguration wirkt sich auf alle Organisationen aus, die in diesem Cluster bereitgestellt werden.
  • Beim Hybrid-Upgrade wird der gesamte Cluster auf einmal aktualisiert.
  • Sicherungen und Wiederherstellungen werden als Cluster durchgeführt und können nicht für eine bestimmte Organisation ausgelöst werden.
  • Das Apigee API-Monitoring-Feature (Zeitachse, Zuletzt, Prüfen) funktioniert nur für die Organisation, die zuerst konfiguriert und bereitgestellt wurde. Es steht in einem Multi-Organisations-Cluster für die anderen Organisationen nicht zur Verfügung.

Optionen für Multi-Organisationen

In diesem Abschnitt wird beschrieben, wie der Apigee-Support vorhandene Cluster mit mehreren Organisationen sowie Empfehlungen für zukünftige Bereitstellungen verarbeitet:

  • Wenn Sie bereits Kubernetes-Cluster mit mehreren Organisationen in Nicht-Produktions- und Produktionskontexten bereitgestellt haben, werden diese vom Apigee-Support weiterhin unterstützt. Beachten Sie jedoch die im nächsten Abschnitt beschriebenen technischen Einschränkungen. Wir empfehlen Ihnen, alle zukünftigen Produktionsbereitstellungen so zu ändern, dass eine Apigee-Organisation pro Cluster verwendet wird.
  • Wenn Sie bereits Cluster mit mehreren Organisationen in Nicht-Produktionsumgebungen haben, werden diese vom Apigee-Support weiterhin unterstützt. Wir empfehlen, alle Produktionscluster zu einer neuen Konfiguration zu migrieren, die eine Apigee-Organisation pro Cluster verwendet.

Voraussetzungen

Beachten Sie Folgendes, bevor Sie fortfahren:

  • Sie müssen eine vorhandene Hybridorganisation mit einer oder mehreren Umgebungen haben, die in einem vorhandenen Kubernetes-Cluster installiert und konfiguriert sind. Weitere Informationen finden Sie in der Hybrid-Installationsanleitung.
  • Wenn Sie mehrere Organisationen in einem einzigen Cluster kombinieren, müssen die Hybridversionen übereinstimmen. Bevor Sie eine zweite Organisation zu einem Cluster hinzufügen, aktualisieren Sie bei Bedarf die vorhandene Hybridinstallation. Siehe Apigee Hybrid aktualisieren.

Organisation erstellen, die dem vorhandenen Cluster hinzugefügt werden soll

Führen Sie die Schritte unter Teil 1: Projekt- und Organisationseinrichtung aus, um die zusätzliche Organisation zu erstellen.

Neue Organisation konfigurieren

In den folgenden Schritten erstellen Sie eine neue Überschreibungsdatei und konfigurieren sie für die neue Organisation. Eine overrides.yaml-Datei kann nur Informationen von einer Organisation unterstützen. Daher müssen Sie eine neue overrides.yaml-Datei erstellen und auf den vorhandenen Kubernetes-Cluster anwenden.

  1. Erstellen Sie Dienstkonten für die neue Organisation. Siehe Dienstkonten erstellen.
  2. Notieren Sie sich die TLS-Zertifikatsdateien (.key und .pem) im Verzeichnis certs. Wenn Sie sie noch einmal erstellen müssen, folgen Sie der Anleitung unter TLS-Zertifikate erstellen.
  3. Kopieren Sie die vorhandene overrides.yaml in eine neue Datei, um sie als Ausgangspunkt für die Konfiguration Ihrer neuen Organisation zu verwenden. Beispiel: new-overrides.yaml.
  4. Bearbeiten Sie die neue Überschreibungsdatei mit den folgenden Konfigurationen:
    org: "new-org-name"
    instanceID: "instance-id"   ## Must match the instanceID of your existing org.
    
    multiOrgCluster: true ## Enables exporting metrics for this org to the Google Cloud Project named with gcp:projectID
    
    k8sCluster:
      name: "existing-cluster-name"
      region: "existing-cluster-analytics-region"
    
    gcp:
      projectID: "new-project-id"
      name: "new-project-id"
      region: "new-project-default-location"
    
    namespace: namespace ## must be the same for both new and existing orgs
    
    virtualhosts:
      - name: new-environment-group-name
        sslCertPath: ./certs/cert-file-name # .crt or .pem
        sslKeyPath: ./certs/key-file-name # .key
    
    envs:
      - name: new-environment-name
        serviceAccountPaths:
          runtime: ./new-service-accounts-directory/new-project-id-apigee-runtime.json
          synchronizer: ./new-service-accounts-directory/new-project-id-apigee-synchronizer.json
          udca: ./new-service-accounts-directory/new-project-id-apigee-udca.json
    
    connectAgent:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-mart.json
    
    mart:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-mart.json
    
    metrics:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-metrics.json
    
    watcher:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-watcher.json

    In der folgenden Tabelle sind alle Attributwerte beschrieben, die Sie in der Überschreibungsdatei angeben müssen. Weitere Informationen finden Sie unter Referenz zu Konfigurationsattributen.

    Variable Beschreibung
    new-org-name Der Name Ihrer neuen Organisation.
    instance-id Alle Organisationen in diesem Cluster müssen dieselbe Instanz-ID haben. Daher muss dies mit dem Eintrag instanceID in der Überschreibungsdatei für Ihre ursprüngliche Organisation übereinstimmen.
    existing-cluster-name Der Name des Clusters, dem Sie diese Organisation hinzufügen. Sie muss mit dem k8sCluster.name-Eintrag in der Überschreibungsdatei für den ursprünglichen Cluster übereinstimmen.
    existing-cluster-analytics-region Die Region, in der der ursprüngliche Cluster bereitgestellt ist. Sie muss mit dem k8sCluster.region-Eintrag in der Überschreibungsdatei für den ursprünglichen Cluster übereinstimmen.
    new-project-id Die Projekt-ID Ihres Projekts. Die Projekt-ID und der Organisationsname sind identisch.
    new-project-default-location Die Analyseregion, die Sie beim Erstellen der neuen Organisation angegeben haben. Sie muss nicht mit der Region für die vorhandene Organisation übereinstimmen.
    namespace Alle Organisationen im Cluster müssen denselben Namespace verwenden. Achten Sie darauf, denselben Namespace zu verwenden, der für die ursprüngliche Organisation verwendet wurde. Der Namespace für die meisten Installationen ist apigee.
    new-environment-group-name Die neue Umgebungsgruppe, die Sie für die neue Organisation erstellt haben.
    cert-file-name und
    key-file-name
    Die TLS-Zertifikats- und -Schlüsseldateien für den Cluster, den Sie in Schritt 1 in diesem Abschnitt geprüft oder erstellt haben.
    new-environment-name Der Name der Umgebung, die Sie für die neue Organisation erstellt haben.
    new-service-accounts-directory Das Verzeichnis, in dem sich die Dienstkonto-Schlüsseldateien befinden, die Sie für die neue Organisation erstellt haben.

Wenden Sie die Konfiguration an

Wenden Sie die neue Organisationskonfiguration auf Ihren Cluster an:

  1. Führen Sie eine Probelaufinstallation aus, um auf Probleme zu prüfen:

    Helm

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f OVERRIDES_FILE.yaml \
      --dry-run
    

    apigeectl

    $APIGEECTL_HOME/apigeectl apply -f NEW_OVERRIDES_FILE.yaml --org --dry-run=client
  2. Wenn keine Probleme auftreten, wenden Sie die Komponenten auf Organisationsebene an. Mit diesem Schritt werden die Cassandra-Jobs (Nutzer und Schema) sowie die Dienste Apigee Connect, Apigee Watcher und MART installiert:

    Helm

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f NEW_OVERRIDES_FILE.yaml
    

    apigeectl

    $APIGEECTL_HOME/apigeectl apply -f NEW_OVERRIDES_FILE.yaml --org
  3. Installieren Sie die Umgebung: In diesem Schritt werden Apigee-Laufzeit-, Synchronizer- und UDCA-Komponenten pro Umgebung installiert:

    Helm

    helm upgrade ENV_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f overrides.yaml \
      --dry-run
    
    helm upgrade ENV_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f overrides.yaml
    

    apigeectl

    $APIGEECTL_HOME/apigeectl apply -f NEW_OVERRIDES_FILE --env $ENV_NAME --dry-run=client
    $APIGEECTL_HOME/apigeectl apply -f NEW_OVERRIDES_FILE --env $ENV_NAME
  4. Wenden Sie die Load-Balancer-Änderungen an. Mit diesem Schritt wird der Ingress so konfiguriert, dass er die neuen virtuellen Hosts für die zweite Organisation überwacht:

    Helm

    helm upgrade NEW_ENV_GROUP_NAME apigee-virtualhost/ \
      --install \
      --namespace apigee \
      --atomic \
      --set envgroup=NEW_ENV_GROUP_NAME \
      -f overrides.yaml \
      --dry-run
    
    helm upgrade NEW_ENV_GROUP_NAME apigee-virtualhost/ \
      --install \
      --namespace apigee \
      --atomic \
      --set envgroup=NEW_ENV_GROUP_NAME \
      -f overrides.yaml
    

    apigeectl

    $APIGEECTL_HOME/apigeectl apply -f NEW_OVERRIDES_FILE --settings virtualhosts --dry-run=client
    $APIGEECTL_HOME/apigeectl apply -f NEW_OVERRIDES_FILE --settings virtualhosts
  5. Aktivieren Sie den Synchronizer-Zugriff für Ihre neue Organisation. Folgen Sie dazu den Schritten unter Synchronizer-Zugriff aktivieren.
  6. Wenn Sie die Apigee Hybrid-Laufzeit zum ersten Mal installieren, ist die Telemetriekomponente standardmäßig mit deaktiviertem multiOrgCluster konfiguriert. Mit den folgenden Schritten aktivieren Sie Telemetriedaten mit mehreren Organisationen für jede Organisation in Ihrem Cluster:
    1. Löschen Sie die vorhandene Telemetriekomponente mit den folgenden Befehlen:

      Helm

      helm delete telemetry
      

      apigeectl

      Führen Sie zuerst einen Probelauf aus:

      $APIGEECTL_HOME/apigeectl delete -f FIRST_OVERRIDES_FILE.yaml --telemetry --dry-run=client

      Wenn der Probelauf erfolgreich ist, löschen Sie die Telemetriekomponente:

      $APIGEECTL_HOME/apigeectl delete -f FIRST_OVERRIDES_FILE.yaml --telemetry
    2. Fügen Sie der Datei overrides.yaml für Ihre vorhandene Organisation die folgende Zeile hinzu.
      multiOrgCluster: true
    3. Wenden Sie die Änderungen an, um die Telemetriekomponente für die Organisation zu installieren.

      Führen Sie zuerst einen Probelauf aus:

      Helm

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f FIRST_OVERRIDES_FILE.yaml \
        --dry-run
      

      apigeectl

      $APIGEECTL_HOME/apigeectl apply -f FIRST_OVERRIDES_FILE.yaml --telemetry --dry-run=client

      Wenn der Probelauf erfolgreich ist, wenden Sie die Änderungen an und installieren Sie die Telemetriekomponente:

      Helm

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f FIRST_OVERRIDES_FILE.yaml
      

      apigeectl

      $APIGEECTL_HOME/apigeectl apply -f FIRST_OVERRIDES_FILE.yaml --telemetry
    4. Achten Sie darauf, dass die folgende Zeile für jede neue Organisation in der Datei overrides.yaml enthalten ist.
      multiOrgCluster: true
    5. Wenden Sie die Änderungen an, um die Telemetriekomponente für jede neue Organisation zu installieren. Wiederholen Sie diese Schritte für jede neue Organisation in Ihrem Multi-Organisations-Cluster.

      Führen Sie zuerst einen Probelauf aus:

      Helm

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f NEW_OVERRIDES_FILE.yaml \
        --dry-run
      

      apigeectl

      $APIGEECTL_HOME/apigeectl apply -f NEW_OVERRIDES_FILE.yaml --telemetry --dry-run=client

      Wenn der Probelauf erfolgreich ist, wenden Sie die Änderungen an und installieren Sie die Telemetriekomponente:

      Helm

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f NEW_OVERRIDES_FILE.yaml
      

      apigeectl

      $APIGEECTL_HOME/apigeectl apply -f NEW_OVERRIDES_FILE.yaml --telemetry