Passaggio 4: installa il modello ibrido su GKE On-Prem

Applica la configurazione al cluster

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. Il contesto attuale deve essere impostato sul cluster in cui stai eseguendo il deployment:
    kubectl config get-contexts
  3. Esegui il comando init:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    Il comando init installa lo Servizi di deployment Apigee Apigee Deployment Controller e Apigee Admission Webhook, che esegue il deployment componenti Istio e Cert Manager.

  4. Per controllare lo stato del deployment, puoi utilizzare questi comandi:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    e

    kubectl get pods -n apigee-system

    e

    kubectl get pods -n istio-system

    Quando i pod sono pronti, vai al passaggio successivo.

  5. Esegui una "prova" di installazione. Esegui il comando apply con il flag --dry-run=true. Eseguire un'asciugatura ti consente di verificare la presenza di eventuali errori prima di apportare modifiche al cluster.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
  6. Se non sono presenti errori, puoi applicare al cluster i componenti di runtime specifici di Apigee:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  7. Per controllare lo stato del deployment:
    $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.

Aggiungi un nome host statico per Cassandra in /etc/hosts (solo Anthos 1.2.x)

In questo passaggio otterrai l'IP e il nome host dei nodi worker assegnati a Cassandra, e aggiungilo al tuo file /etc/hosts. Quando utilizza la rete host, il pod utilizza il nome host e l'IP del nodo. Il nome host del nodo non è nel DNS; pertanto, devi aggiungere una voce del nome host statico in /etc/hosts per ogni nodo worker Cassandra.

  1. Esegui questo comando per ottenere i nodi worker Cassandra. Il parametro apigee-data è l'etichetta predefinita del nodo a cui è assegnato Cassandra. Se hai usato un'etichetta del nodo diversa, sostituisci quello usato. Vedi Come per etichettare i nodi worker.
    kubectl  get nodes -l apigee.com/apigee-nodepool=apigee-data -o wide

    Output di esempio:

    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. Aggiungi i nomi dei nodi e gli IP esterni restituiti dal comando precedente per ogni dal nodo worker Cassandra al tuo File /etc/hosts:
    cat /etc/hosts
    
    127.0.0.1 localhost
    21.0.129.248   my-cluster1-844788cc8c-2gx7d
    

Attivare l'accesso al sincronizzatore

  1. Creare un account di servizio Google Cloud e aggiungere il ruolo Amministratore organizzazione Apigee che le sono assegnati. 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 è tramite la console Google Cloud. Per le istruzioni, vedi Creare e gestire gli account di servizio nella documentazione di Google Cloud.
  2. Scarica la chiave dell'account di servizio sul tuo sistema. Segui le istruzioni in Creazione delle chiavi degli account di servizio nella documentazione di Google Cloud.
  3. Sposta la chiave dell'account di servizio scaricata nella directory degli account di servizio: /hybrid-base-directory/hybrid-files/service-accounts.
  4. Esegui questi due comandi per ottenere un token:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    dove org-admin-service-account-file è il percorso sul sistema della chiave dell'account di servizio che hai scaricato con il ruolo Amministratore dell'organizzazione Apigee.

  5. Chiama l'API setSyncAuthorization per abilita le autorizzazioni richieste per synchronousr:
    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"]}'
    

    Dove:

    • your_org_name: il nome della tua organizzazione ibrida.
    • synchronizer-manager-service-account-email: il nome di un account di servizio con il ruolo Gestore sincronizzatore Apigee. Il nome ha lo stesso formato di un indirizzo email. Ad esempio: apigee-synchronizer@my-project.iam.gserviceaccount.com

    Esempio:

    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. Per verificare che l'account di servizio sia stato impostato, chiama l'API seguente per 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/your_org_name:getSyncAuthorization" \
       -d ''
    

    L'output è simile al seguente:

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

Aggiungere l'IP MART all'organizzazione

Devi aggiungere l'indirizzo IP dell'endpoint MART alla tua organizzazione Apigee. Hai impostato questo valore in precedenza, quando viene impostato il valore della proprietà mart.hostAlias nelle sostituzioni . Il piano di gestione ha bisogno di questo indirizzo per poter comunicare con il piano di runtime tramite MART.

Per aggiungere l'IP MART alla tua organizzazione:

  1. Recupera il valore impostato in precedenza nel file delle sostituzioni per la proprietà mart.hostAlias. Affinché MART funzioni, l'alias host deve essere un nome di dominio completo.
  2. Individua la chiave dell'account di servizio con il ruolo Amministratore organizzazione Apigee scaricato in precedenza, nella sezione Abilita l'accesso per la sincronizzazione.
  3. Esegui questi due comandi per ottenere un token:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    Dove org-admin-service-account-file è il percorso del tuo sistema al servizio chiave account che hai scaricato con il ruolo di Amministratore organizzazione Apigee.

  4. Chiama l'API di gestione seguente per aggiornare la tua organizzazione con l'endpoint MART:
    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"
        } ]
      }
    }'

    Ecco un esempio. Assicurati di aggiungere il prefisso "https://" al nome di dominio.

    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"
        } ]
      }
    }'

Salva il file delle sostituzioni

Assicurati di salvare il file degli override. Ti servirà questo file per eseguire futuri upgrade, patch o altre modifiche alla configurazione del cluster.