Schritt 4: Hybrid in GKE On-Prem installieren

Konfiguration auf den Cluster anwenden

So installieren Sie Apigee Hybrid in Ihrem Cluster:

  1. Sie müssen sich im Verzeichnis hybrid-base-directory/hybrid-files befinden.
  2. 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
  3. 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.

  4. 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.

  5. 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
  6. Wenn keine Fehler auftreten, können Sie die Apigee-spezifischen Laufzeitkomponenten auf den Cluster anwenden:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  7. 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.

  1. 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
  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

  1. 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.
  2. Laden Sie den Dienstkontoschlüssel auf Ihr System herunter. Folgen Sie der Anleitung unter Dienstkontoschlüssel erstellen in der GCP-Dokumentation.
  3. Verschieben Sie den heruntergeladenen Dienstkontoschlüssel in Ihr Dienstkontoverzeichnis: /hybrid-base-directory/hybrid-files/service-accounts.
  4. 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.

  5. 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"]}'
    
  6. 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:

  1. 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.
  2. Suchen Sie nach dem Dienstkontoschlüssel mit der Rolle, die Sie zuvor im Abschnitt Apigee Organization Admin heruntergeladen haben, im Abschnitt Synchronisatorzugriff aktivieren.
  3. 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.

  4. 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.