Applica la configurazione al cluster
Per installare Apigee hybrid nel cluster:
- Assicurati di essere nella directory
hybrid-base-directory/hybrid-files
. - Verifica che
kubectl
sia impostato sul contesto corretto. Il contesto corrente deve essere impostato sul cluster a cui stai eseguendo il deployment:kubectl config get-contexts
- 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 e esegue il deployment dei 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
e
kubectl get pods -n apigee-system
e
kubectl get pods -n istio-system
Quando i pod sono pronti, vai al passaggio successivo.
- Esegui una "prova" di installazione. Esegui il comando
apply
con il flag--dry-run=true
. Eseguire un'esercitazione simulata ti 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 sono presenti errori, puoi applicare al cluster i componenti di runtime specifici di Apigee:
$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é tutti i pod non sono 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'indirizzo IP e il nome host dei nodi worker assegnati a Cassandra e li aggiungerai al 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.
- Esegui questo comando per ottenere i nodi worker Cassandra. Il parametro
apigee-data
è l'etichetta del nodo predefinita a cui è assegnata Cassandra. Se hai utilizzato un'etichetta del nodo diversa, sostituisci quella che hai utilizzato. Consulta la sezione 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 i nomi dei nodi e gli IP esterni restituiti dal comando precedente per ogni
nodo worker Cassandra al
file
/etc/hosts
:cat /etc/hosts 127.0.0.1 localhost 21.0.129.248 my-cluster1-844788cc8c-2gx7d
Attivare l'accesso al sincronizzatore
- Crea un account di servizio Google Cloud e aggiungi il ruolo Amministratore dell'organizzazione Apigee. 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.
- Scarica la chiave dell'account di servizio sul tuo sistema. Segui le istruzioni riportate in Creare chiavi 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 sul tuo sistema della chiave dell'account di servizio che hai scaricato con il ruolo Amministratore dell'organizzazione Apigee.
- Chiama l'API setSyncAuthorization per attivare le autorizzazioni richieste per il sincronizzatore:
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 è formato come 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 la seguente API 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 hai impostato il valore della proprietà mart.hostAlias
nel file delle 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:
- 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. - Individua la chiave dell'account di servizio con il ruolo Amministratore dell'organizzazione Apigee che hai scaricato in precedenza nella sezione Attivare 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 sul tuo sistema della chiave dell'account di servizio che hai scaricato con il ruolo Amministratore dell'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 delle sostituzioni
Assicurati di salvare il file delle sostituzioni. Ti servirà questo file per eseguire futuri upgrade, patch o altre modifiche alla configurazione del cluster.