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.
Vorbereitung
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.
- Erstellen Sie Dienstkonten für die neue Organisation. Siehe Dienstkonten erstellen.
- Notieren Sie sich die TLS-Zertifikatsdateien (
.key
und.pem
) im Verzeichniscerts
. Wenn Sie sie noch einmal erstellen müssen, folgen Sie der Anleitung unter TLS-Zertifikate erstellen. - 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
. - 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-nameDie 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:
- 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
- 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
- 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
- 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
- Aktivieren Sie den Synchronizer-Zugriff für Ihre neue Organisation. Folgen Sie dazu den Schritten unter Synchronizer-Zugriff aktivieren.
- 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:- 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
- Fügen Sie der Datei
overrides.yaml
für Ihre vorhandene Organisation die folgende Zeile hinzu.multiOrgCluster: true
- 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
- Achten Sie darauf, dass die folgende Zeile für jede neue Organisation in der Datei
overrides.yaml
enthalten ist.multiOrgCluster: true
- 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
- Löschen Sie die vorhandene Telemetriekomponente mit den folgenden Befehlen: