Konfiguration auf den Cluster anwenden
So installieren Sie Apigee Hybrid in Ihrem Cluster:
- Sie müssen sich im Verzeichnis
hybrid-base-directory/hybrid-files
befinden. - Prüfen Sie, ob
kubectl
auf den richtigen Kontext eingestellt ist. Der aktuelle Kontext sollte auf den Cluster eingestellt werden, für den Sie die Bereitstellung ausführen:kubectl config get-contexts
- Führen Sie den Befehl
init
aus.$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
Mit dem Befehl
init
werden die Apigee-Bereitstellungsdienste Apigee Deployment Controller und Apigee Admission Webhook installiert. Außerdem werden damit die Nicht-Apigee-Komponenten Istio und Cert Manager bereitgestellt. - Mit den folgenden Befehlen können Sie den Status der Bereitstellung prüfen:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
und
kubectl get pods -n apigee-system
und
kubectl get pods -n istio-system
Wenn die Pods bereit sind, fahren Sie mit dem nächsten Schritt fort.
- Führen Sie eine "Probelauf"-Installation aus. Führen Sie den Befehl
apply
mit dem Flag--dry-run=true
aus. Bei einem Probelauf können Sie prüfen, ob Fehler vorliegen, bevor Änderungen am Cluster vorgenommen werden.$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
- Wenn keine Fehler auftreten, können Sie die Apigee-spezifischen Laufzeitkomponenten auf den Cluster anwenden:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- So prüfen Sie den Status der Bereitstellung:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
Wiederholen Sie diesen Schritt, bis die Pods bereit sind. Das Starten der Pods kann einige Minuten dauern.
Fügen Sie einen statischen Hostnamen für Cassandra in /etc/hosts hinzu (nur Anthos 1.2.x).
In diesem Schritt rufen Sie die IP-Adresse und den Hostnamen der Worker-Knoten ab, die Cassandra zugewiesen sind, und fügen sie der Datei /etc/hosts
hinzu. Bei Verwendung des Hostnetzwerks verwendet der Pod den Hostnamen und die IP-Adresse des Knotens. Der Hostname des Knotens befindet sich nicht im DNS. Daher müssen Sie in /etc/hosts
für jeden Cassandra-Worker-Knoten einen statischen Hostnameneintrag hinzufügen.
- Führen Sie diesen Befehl aus, um die Cassandra-Worker-Knoten abzurufen. Der Parameter
apigee-data
ist das Standardknotenlabel, dem Cassandra zugewiesen wird. Wenn Sie ein anderes Knotenlabel verwendet haben, ersetzen Sie dieses. Weitere Informationen finden Sie unter Worker-Knoten mit Labels versehen.kubectl get nodes -l apigee.com/apigee-nodepool=apigee-data -o wide
Beispielausgabe:
kubectl get nodes -o wide my-cluster1-844788cc8c-2gx7d NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME my-cluster1-844788cc8c-2gx7d Ready none 19d v1.14.7-gke.24 21.0.129.248 21.0.129.248 Ubuntu 18.04.3 LTS 4.15.0-62-generic docker://17.3.2
- Fügen Sie der Datei
/etc/hosts
die Knotennamen und externe IP-Adressen, die vom vorherigen Befehl für jeden Cassandra-Worker-Knoten zurückgegeben wurden, hinzu:cat /etc/hosts 127.0.0.1 localhost 21.0.129.248 my-cluster1-844788cc8c-2gx7d
Synchronizer-Zugriff aktivieren
- Erstellen Sie ein GCP-Dienstkonto und fügen Sie ihm die Rolle Apigee-Organisationsadministrator hinzu. Dieses Dienstkonto wird zur Authentifizierung eines API-Aufrufs verwendet, den Sie in einem späteren Schritt ausführen. Über die GCP Console kann das Dienstkonto ganz einfach erstellt werden. Informationen dazu finden Sie in der GCP-Dokumentation unter Dienstkonten erstellen und verwalten.
- Laden Sie den Dienstkontoschlüssel auf Ihr System herunter. Folgen Sie der Anleitung unter Dienstkontoschlüssel erstellen in der GCP-Dokumentation.
- Verschieben Sie den heruntergeladenen Dienstkontoschlüssel in Ihr Dienstkontoverzeichnis: /hybrid-base-directory
/hybrid-files/service-accounts
. - Führen Sie die folgenden beiden Befehle aus, um ein Token abzurufen:
export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
export TOKEN=$(gcloud auth application-default print-access-token)
Dabei ist org-admin-service-account-file der Pfad in Ihrem System zum Dienstkontoschlüssel, den Sie mit der Rolle Apigee Organization Admin heruntergeladen haben.
- Rufen Sie die setSyncAuthorization-API auf, um die erforderlichen Berechtigungen für Synchronizer zu aktivieren:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \ -d '{"identities":["serviceAccount:synchronizer-manager-service-account-email"]}'
Wobei:
your_org_name
: der Name Ihrer Hybridorganisation.synchronizer-manager-service-account-email
ist der Name eines Dienstkontos mit der Rolle Apigee Synchronizer Manager. Der Name sieht wie eine E-Mail-Adresse aus. Beispiel:apigee-synchronizer@my-project.iam.gserviceaccount.com
Beispiel:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \ -d '{"identities":["serviceAccount:apigee-synchronizer@my-project.iam.gserviceaccount.com"]}'
- Rufen Sie die folgende API auf, um eine Liste der Dienstkonten abzurufen. So können Sie prüfen, ob das Dienstkonto entsprechend festgelegt wurde:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \ -d ''
Die Ausgabe sieht dann ungefähr so aus:
{ "identities":[ "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com" ], "etag":"BwWJgyS8I4w=" }
MART-IP-Adresse zu Ihrer Organisation hinzufügen
Sie müssen die IP-Adresse des MART-Endpunkts zu Ihrer Apigee-Organisation hinzufügen. Sie legen diesen Wert zuvor fest, wenn Sie den Wert des Attributs mart.hostAlias
in der Überschreibungsdatei festlegen.
Die Verwaltungsebene benötigt diese Adresse, damit sie über MART mit der Laufzeitebene kommunizieren kann.
So fügen Sie Ihrer Organisation die MART-IP-Adresse hinzu:
- Rufen Sie den Wert ab, den Sie zuvor in der Überschreibungsdatei für das Attribut
mart.hostAlias
festgelegt haben. Damit MART funktioniert, muss das Host-Alias ein vollständig qualifizierter Domainname sein. - Suchen Sie nach dem Dienstkontoschlüssel mit der Rolle, die Sie zuvor im Abschnitt Apigee Organization Admin heruntergeladen haben, im Abschnitt Synchronisatorzugriff aktivieren.
- Führen Sie die folgenden beiden Befehle aus, um ein Token abzurufen:
export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
export TOKEN=$(gcloud auth application-default print-access-token)
Dabei ist org-admin-service-account-file der Pfad in Ihrem System zum Dienstkontoschlüssel, den Sie mit der Rolle Apigee Organization Admin heruntergeladen haben.
- Rufen Sie die folgende Verwaltungs-API auf, um Ihre Organisation mit dem MART-Endpunkt zu aktualisieren:
curl -v -X PUT \ https://apigee.googleapis.com/v1/organizations/your_org_name \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -d '{ "name" : "your_org_name", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.server.endpoint", "value" : "https://HOST_ALIAS_DNS" } ] } }'
Hier ein Beispiel: Achten Sie darauf, dem Domainnamen das Präfix "https://" hinzuzufügen.
curl -v -X PUT \ https://apigee.googleapis.com/v1/organizations/my_organization \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -d '{ "name" : "my_organization", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.server.endpoint", "value" : "https://foo-mart.example.com" } ] } }'
Überschreibungsdatei speichern
Speichern Sie die Überschreibungsdatei. Sie benötigen diese Datei für zukünftige Upgrades, Patches oder andere Änderungen an der Clusterkonfiguration.