Passaggio 5: installazione del runtime di hybrid

Abilita accesso sincronizzatore

Per attivare l'accesso al programma di sincronizzazione:

  1. Crea un account di servizio Google Cloud e aggiungi il ruolo Amministratore organizzazione Apigee all'account. Questo account di servizio verrà utilizzato per autenticare una chiamata API che effettuerai in un passaggio successivo. Un modo semplice per creare l'account di servizio è utilizzare la console Google Cloud. Per le istruzioni, consulta la sezione Creazione e gestione degli account di servizio nella documentazione di Google Cloud.

    Ad esempio, i seguenti comandi gcloud creano l'account di servizio e gli assegneranno l'amministratore organizzazione Apigee:

    1. Crea l'account:
      gcloud iam service-accounts create apigee-org-admin \
          --display-name="apigee-org-admin"

      Dove apigee-org-admin è il nome dell'account di servizio che stai creando. Per questo tutorial è consigliato "apigee-org-admin".

    2. Assegna il ruolo Amministratore organizzazione Apigee all'account di servizio:
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member="serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/apigee.admin"

      Dove:

      • $PROJECT_ID è il nome del progetto Google Cloud che hai creato nel Passaggio 2: crea un progetto Google Cloud.
      • apigee-org-admin è il nome dell'account di servizio appena creato.
      • roles/apigee.admin è il ruolo Amministratore organizzazione Apigee.
  2. Scarica la chiave dell'account di servizio sul tuo sistema. Utilizza il seguente comando per scaricare la chiave nella directory service-accounts/. Per saperne di più, consulta le istruzioni riportate nella sezione Creazione di chiavi degli account di servizio nella documentazione di Google Cloud.
    1. Assicurati di essere nella directory /hybrid-base-directory/hybrid-files/.
    2. Scarica la chiave:
      gcloud iam service-accounts keys create ./service-accounts/$PROJECT_ID-apigee-org-admin.json \
        --iam-account apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com

      L'output dovrebbe essere simile al seguente:

      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. Verifica il percorso della chiave dell'account di servizio dell'amministratore dell'organizzazione Apigee con il comando seguente:
    ls service-accounts/*admin*

    Il risultato dovrebbe essere simile al seguente:

    service-accounts/hybrid-example-apigee-org-admin.json
  4. Crea una variabile di ambiente ORG_ADMIN_ACCOUNT con il nome del file della chiave. Ad esempio:
    export ORG_ADMIN_ACCOUNT="hybrid-example-2-apigee-org-admin.json"
  5. Esegui questi comandi per ricevere un token:
    export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNT
    export TOKEN=$(gcloud auth application-default print-access-token)
  6. Recupera l'indirizzo email per il tuo account di servizio apigee-synchronizer con il seguente comando:
    gcloud iam service-accounts list --filter "apigee-synchronizer"

    Se corrisponde al pattern apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com, puoi utilizzare questo pattern nel passaggio successivo.

  7. Chiama l'API setSyncAuthorization per abilitare le autorizzazioni richieste per il programma di sincronizzazione utilizzando questo comando:
    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"'"]}'
    

    Dove:

    • $ORG_NAME: il nome della tua organizzazione ibrida.
    • apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com: l'indirizzo email dell'account di servizio apigee-syncnronizer.
  8. Per verificare che l'account di servizio sia stato impostato, usa il comando seguente per chiamare l'API e ottenere un elenco di account di servizio:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:getSyncAuthorization" \
       -d ''
    

    L'output è simile al seguente:

    {
       "identities":[
          "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }

Applica la configurazione al cluster

Segui questi passaggi per installare Apigee hybrid nel tuo cluster:

  1. Assicurati di essere nella directory hybrid-base-directory/hybrid-files.
  2. Verifica che kubectl sia impostato sul contesto corretto utilizzando il seguente comando. Il contesto attuale deve essere impostato sul cluster su cui stai eseguendo il deployment di Apigee hybrid.
    kubectl config get-contexts
  3. Esegui una prova. Esegui il comando init con il flag --dry-run. Una prova consente di verificare la presenza di eventuali errori prima di apportare modifiche al cluster.

    Nella versione ibrida 1.3, la sintassi del flag --dry-run dipende dalla versione di kubectl in esecuzione. Controlla la versione di kubectl con il comando seguente:

    kubectl version

    kubectl versione 1.17 e precedenti:

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

    kubectl 1.18 e versioni successive:

    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=client
  4. Se non sono presenti errori, esegui il comando init come segue:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    Il comando init installa i servizi di deployment Apigee Apigee Deployment Controller e Apigee Admission Webhook.

  5. Per controllare lo stato del deployment, puoi utilizzare i seguenti comandi:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
    kubectl get pods -n apigee-system
    kubectl get pods -n istio-system

    Quando i pod sono pronti, vai al passaggio successivo.

  6. Esegui una prova. Esegui il comando apply con il flag --dry-run.

    kubectl versione 1.17 e precedenti:

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

    kubectl 1.18 e versioni successive:

    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=client
  7. Se non sono presenti errori, puoi applicare i componenti di runtime specifici di Apigee al cluster con il seguente comando:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  8. Per verificare lo stato del deployment, esegui questo comando:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    Ripeti questo passaggio finché i pod non sono tutti pronti. L'avvio dei pod potrebbe richiedere diversi minuti.

Abilita Apigee Connect

Apigee Connect gestisce la comunicazione tra il piano di gestione Apigee e MART nel piano di runtime. Per ulteriori informazioni, consulta Utilizzo di Apigee Connect.

Per abilitare Apigee Connect, segui questi passaggi:

  1. Nella riga di comando, recupera le tue credenziali di autenticazione gcloud, come mostrato nell'esempio seguente:

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

    Per verificare che il token sia stato compilato, utilizza echo, come illustrato nell'esempio seguente:

    echo $TOKEN

    Il token dovrebbe essere visualizzato come stringa codificata.

    Per maggiori informazioni, consulta la panoramica dello strumento a riga di comando gcloud.

  2. Utilizza il comando seguente per verificare se Apigee Connect è abilitato per la tua organizzazione.
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"

    Dove $ORG_NAME è l'ID della tua organizzazione.

    Se l'output contiene quanto segue:

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

    Apigee Connect è abilitato e puoi saltare il resto di questa sezione.

  3. Abilita Apigee Connect con il seguente comando:
    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"
    

    Se l'output contiene le seguenti proprietà, Apigee Connect è stato abilitato correttamente:

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

    L'output dovrebbe essere simile al seguente:

    {
      "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"
    }