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 pro Cluster 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.
  • Pod-Messwerte werden nur an das erste konfigurierte Google Cloud-Projekt gesendet. Diese Einschränkung ist im Cloud Monitoring-Tool am deutlichsten erkennbar. Sie wirkt sich nur auf Clustermesswerte aus. API-Analysen sind nicht betroffen. Die Messwerte für die anderen Apigee-Organisationen werden nicht an das entsprechende Google Cloud-Projekt gesendet.
  • 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.
    
    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 Standard-Namespace 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:
    apigeectl apply -f overrides/new-overrides.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:
    apigeectl apply -f overrides/new-overrides.yaml --org
  3. Installieren Sie die Umgebung: In diesem Schritt werden Apigee-Laufzeit-, Synchronizer- und UDCA-Komponenten pro Umgebung installiert:
    apigeectl apply -f overrides/new-overrides.yaml --env ${ENV_NAME} --dry-run=client
    apigeectl apply -f overrides/new-overrides.yaml --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:
    apigeectl apply -f overrides/new-overrides.yaml --settings virtualhosts --dry-run=client
    apigeectl apply -f overrides/new-overrides.yaml --settings virtualhosts
  5. Aktivieren Sie den Synchronizer-Zugriff für Ihre neue Organisation. Folgen Sie dazu den Schritten unter Synchronizer-Zugriff aktivieren.