Schritt 5: Hybrid-Laufzeit installieren

Synchronizer-Zugriff aktivieren

So aktivieren Sie den Synchronizer-Zugriff:

  1. Erstellen Sie ein Google Cloud-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.

    Mit den folgenden gcloud-Befehlen wird das Dienstkonto erstellt und ihm Apigee Organization Admin zugewiesen:

    1. Erstellen Sie das Konto:
      gcloud iam service-accounts create apigee-org-admin \
          --display-name="apigee-org-admin"

      Dabei ist apigee-org-admin der Name des Dienstkontos, das Sie erstellen. "apigee-org-admin" wird für diese Anleitung empfohlen.

    2. Weisen Sie dem Dienstkonto die Rolle Apigee-Organisationsadministrator zu:
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member="serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/apigee.admin"

      Wobei:

      • $PROJECT_ID ist der Name Ihres Google Cloud-Projekts, das Sie in Schritt 2: Google Cloud-Projekt erstellen erstellt haben.
      • apigee-org-admin ist der Name des soeben erstellten Dienstkontos.
      • roles/apigee.admin ist die Rolle roles/apigee.admin.
  2. Laden Sie den Dienstkontoschlüssel auf Ihr System herunter. Mit dem folgenden Befehl laden Sie den Schlüssel in das service-accounts/-Verzeichnis herunter. Weitere Informationen finden Sie in der GCP-Dokumentation unter Dienstkontoschlüssel erstellen.
    1. Sie müssen sich im Verzeichnis /hybrid-base-directory/hybrid-files/ befinden.
    2. Laden Sie den Schlüssel herunter:
      gcloud iam service-accounts keys create ./service-accounts/$PROJECT_ID-apigee-org-admin.json \
        --iam-account apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com

      Die Ausgabe sollte in etwa so aussehen:

      created key [a0b1c2d3e4f5a0b1c2d3e4f5a0b1c2d3e4f5a0b1] of type [json] as [./service-accounts/hybrid-
      example-apigee-org-admin.json] for [apigee-org-admin@my-hybrid.iam.gserviceaccount.com]
      $ 
  3. Prüfen Sie den Pfad zum Dienstkontoschlüssel des Apigee-Organisationsadministrators mit dem folgenden Befehl:
    ls service-accounts/*admin*

    Das Ergebnis sollte in etwa so aussehen:

    service-accounts/hybrid-example-apigee-org-admin.json
  4. Erstellen Sie die Umgebungsvariable ORG_ADMIN_ACCOUNT mit dem Namen der Schlüsseldatei. Beispiel:
    export ORG_ADMIN_ACCOUNT="hybrid-example-2-apigee-org-admin.json"
  5. Führen Sie die folgenden Befehle aus, um ein Token abzurufen:
    export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNT
    export TOKEN=$(gcloud auth application-default print-access-token)
  6. Rufen Sie die E-Mail-Adresse Ihres apigee-synchronizer-Dienstkontos mit dem folgenden Befehl ab:
    gcloud iam service-accounts list --filter "apigee-synchronizer"

    Wenn es mit dem Muster apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com übereinstimmt, können Sie dieses Muster im nächsten Schritt verwenden.

  7. Rufen Sie die setSyncAuthorization API mit dem folgenden Befehl 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/$ORG_NAME:setSyncAuthorization" \
       -d '{"identities":["'"serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com"'"]}'
    

    Wobei:

    • $ORG_NAME: der Name Ihrer Hybridorganisation.
    • apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com: Die E-Mail-Adresse des Apigee-Synchronizer-Dienstkontos.
  8. Prüfen Sie, ob das Dienstkonto eingerichtet wurde. Rufen Sie mit dem folgenden Befehl die API auf, um eine Liste der Dienstkonten abzurufen:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$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="
    }

Konfiguration auf den Cluster anwenden

Führen Sie die folgenden Schritte aus, um Apigee Hybrid in Ihrem Cluster zu installieren:

  1. Achten Sie darauf, dass Sie sich im Verzeichnis hybrid-base-directory/hybrid-files befinden.
  2. Prüfen Sie mit dem folgenden Befehl, ob kubectl auf den richtigen Kontext eingestellt ist. Der aktuelle Kontext sollte auf den Cluster eingestellt werden, für den Sie Apigee Hybrid bereitstellen.
    kubectl config get-contexts
  3. Führen Sie eine Initialisierung als Probelauf aus. Führen Sie den Befehl init mit dem Flag --dry-run aus. Bei einem Probelauf können Sie prüfen, ob Fehler vorliegen, bevor Änderungen am Cluster vorgenommen werden.

    In Hybrid-Version 1.3 hängt die Syntax des Flags --dry-run von der Version von kubectl ab, die Sie ausführen. Prüfen Sie die Version von kubectl mit dem folgenden Befehl:

    kubectl version

    kubectl-Version 1.17 und niedriger:

    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=true

    Ab kubectl-Version 1.18:

    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=client
  4. Wenn keine Fehler vorhanden sind, führen Sie den Befehl init so 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.

  5. Mit den folgenden Befehlen können Sie den Bereitstellungsstatus prüfen:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
    kubectl get pods -n apigee-system
    kubectl get pods -n istio-system

    Wenn die Pods bereit sind, fahren Sie mit dem nächsten Schritt fort.

  6. Führen Sie eine Installation als Probelauf aus. Führen Sie den Befehl apply mit dem Flag --dry-run aus.

    kubectl-Version 1.17 und niedriger:

    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true

    Ab kubectl-Version 1.18:

    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=client
  7. Wenn keine Fehler auftreten, können Sie die Apigee-spezifischen Laufzeitkomponenten mit dem folgenden Befehl auf den Cluster anwenden:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  8. Führen Sie folgenden Befehl aus, um den Status des Deployments zu überprüfen:
    $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.

Apigee Connect aktivieren

Apigee Connect verwaltet die Kommunikation zwischen der Apigee-Verwaltungsebene und dem MART auf der Laufzeitebene. Weitere Informationen finden Sie unter Apigee Connect verwenden.

So aktivieren Sie Apigee Connect:

  1. Rufen Sie in der Befehlszeile Ihre gcloud-Authentifizierungsdaten ab, wie im folgenden Beispiel gezeigt:

    TOKEN=$(gcloud auth print-access-token)

    Um zu prüfen, ob Ihr Token ausgefüllt wurde, verwenden Sie echo wie im folgenden Beispiel:

    echo $TOKEN

    Das Token sollte als codierter String angezeigt werden.

    Weitere Informationen finden sich in der Übersicht über das gcloud-Befehlszeilentool.

  2. Prüfen Sie mit dem folgenden Befehl, ob Apigee Connect für Ihre Organisation aktiviert ist.
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"

    Dabei ist $ORG_NAME die ID Ihrer Organisation.

    Wenn die Ausgabe Folgendes enthält:

          "name" : "features.mart.connect.enabled",
          "value" : "true"

    Apigee Connect ist aktiviert und Sie können den Rest dieses Abschnitts überspringen.

  3. Aktivieren Sie Apigee Connect mit folgendem Befehl:
    curl -H "Authorization: Bearer $TOKEN" -X PUT \
      -H "Content-Type: application/json" \
      -d '{
        "name" : "'"$ORG_NAME"'",
        "properties" : {
          "property" : [ {
            "name" : "features.hybrid.enabled",
            "value" : "true"
          }, {
            "name" : "features.mart.connect.enabled",
            "value" : "true"
          } ]
        }
      }' \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
    

    Wenn die Ausgabe die folgenden beiden Attribute enthält, wurde Apigee Connect erfolgreich aktiviert:

          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          },
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          }
    

    Die Ausgabe sollte in etwa so aussehen:

    {
      "name": "hybrid-example-2",
      "createdAt": "1594409699772",
      "lastModifiedAt": "1594776283697",
      "environments": [
        "example-env"
      ],
      "properties": {
        "property": [
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          },
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-central1",
      "runtimeType": "HYBRID",
      "subscriptionType": "TRIAL"
    }