Applica la configurazione al cluster
Per installare Apigee hybrid nel tuo cluster:
- Assicurati di essere nella directory
hybrid-base-directory/hybrid-files
. - Esegui il comando
init
:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
Il comando
init
installa i servizi di deployment Apigee Apigee Deployment Controller e Apigee Admission Webhook, quindi esegue il deployment di componenti non Apigee Istio e Cert Manager. - Per controllare lo stato del deployment, puoi utilizzare questi comandi:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
and
kubectl get pods -n apigee-system
and
kubectl get pods -n istio-system
Quando i pod sono pronti, vai al passaggio successivo.
- Esegui un'installazione in modalità di prova. Esegui il comando
apply
con il flag--dry-run=true
. Eseguire una prova consente di verificare la presenza di eventuali errori prima che vengano apportate modifiche al cluster.$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
-
Se non ci sono errori, puoi applicare i componenti di runtime specifici di Apigee al cluster:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- 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
In questo passaggio, otterrai l'IP e il nome host dei nodi worker assegnati a Cassandra e li aggiungerai al tuo file /etc/hosts
. Quando si utilizza la rete host, il pod utilizza il nome host e l'IP del nodo. Il nome host del nodo non è presente nel DNS; pertanto, devi aggiungere
una voce di nome host statico in /etc/hosts
per ogni nodo worker Cassandra.
- Esegui questo comando per recuperare i nodi worker di Cassandra. Il parametro
apigee-data
è l'etichetta predefinita del nodo a cui è assegnato Cassandra. Se hai utilizzato un'etichetta del nodo diversa, sostituisci quella che hai utilizzato. Consulta Come 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
- Aggiungi al file
/etc/hosts
i nomi dei nodi e gli IP esterni restituiti dal comando precedente per ogni nodo worker Cassandra:cat /etc/hosts 127.0.0.1 localhost 21.0.129.248 my-cluster1-844788cc8c-2gx7d
Abilita l'accesso per sincronizzare
- Crea un account di servizio Google Cloud e aggiungi il ruolo Amministratore organizzazione Apigee. Questo account di servizio verrà utilizzato per autenticare una chiamata API che effettuerai in un passaggio successivo. Un modo semplice per creare un account di servizio è utilizzare la console di Google Cloud. Per le istruzioni, consulta la sezione Creazione e gestione degli account di servizio nella documentazione della piattaforma Google Cloud.
- Scarica la chiave dell'account di servizio nel sistema. Segui le istruzioni riportate nella sezione Creazione di chiavi dell'account di servizio nella documentazione di Google Cloud.
- Sposta la chiave dell'account di servizio scaricata nella directory degli account di servizio:
/hybrid-base-directory
/hybrid-files/service-accounts
. - 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 alla chiave dell'account di servizio che hai scaricato con il ruolo Amministratore organizzazione Apigee.
- Chiama l'API setSyncAuthorization per
abilitare 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 Apigee Sincronizzar Manager. 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"]}'
- 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=" }
Aggiungi l'IP MART alla tua organizzazione
Devi aggiungere l'indirizzo IP dell'endpoint MART
alla tua organizzazione Apigee. Hai impostato questo valore in precedenza quando imposti
il valore della proprietà mart.hostAlias
nel file
degli override.
Il piano di gestione ha bisogno di questo indirizzo per poter comunicare con il piano di runtime su MART.
Segui questi passaggi per aggiungere l'IP MART alla tua organizzazione:
- Ottieni il valore impostato in precedenza nel file degli override per la
proprietà
mart.hostAlias
. Affinché MART funzioni, l'alias host deve essere un nome di dominio completo. - Individua la chiave dell'account di servizio con il ruolo Amministratore organizzazione Apigee che hai scaricato in precedenza, nella sezione Abilitare l'accesso del sincronizzatore.
- 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 alla chiave dell'account di servizio che hai scaricato con il ruolo Amministratore organizzazione Apigee.
- Chiama la seguente API di gestione 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 degli override
Assicurati di salvare il file degli override. Questo file è necessario per eseguire upgrade, patch o altre modifiche futuri alla configurazione del cluster.