Questo insieme di tutorial è rivolto agli amministratori IT e agli operatori che vogliono per eseguire il deployment, eseguire e gestire ambienti applicativi moderni in esecuzione Google Kubernetes Engine (GKE) Enterprise. Man mano che procedi in questa serie di tutorial, impari a configurare monitoraggio e avvisi, scalare carichi di lavoro e simulare errori, il tutto utilizzando l'applicazione di microservizi di esempio di Cymbal Bank:
- Crea un cluster ed esegui il deployment di un'applicazione di esempio (questo tutorial)
- Monitoraggio con Google Cloud Managed Service per Prometheus
- Scala i carichi di lavoro
- Simula un errore
Panoramica e obiettivi
Cymbal Bank utilizza Python e Java per eseguire i vari servizi e include una PostgreSQL. Non è necessaria esperienza con questi linguaggi o questi database piattaforma per completare la serie di tutorial, come Cymbal Bank è solo un esempio. per mostrare in che modo GKE Enterprise può supportare le esigenze la tua attività.
In questo tutorial imparerai a creare un singolo cluster GKE ed eseguire il deployment di un'applicazione di esempio basata su microservizi denominata Cymbal Bank cluster GKE. Imparerai a completare le attività seguenti:
Crea un cluster GKE che utilizza Autopilot.
Esegui il deployment di un'applicazione di esempio basata su microservizi denominata Cymbal Bank.
Usa la console Google Cloud per esplorare le risorse GKE utilizzate l'applicazione di esempio di Cymbal Bank.
Costi
Esempio di abilitazione di GKE Enterprise e deployment di Cymbal Bank di applicazione per questa serie di tutorial prevede che siano applicati costi per cluster addebita costi per GKE Enterprise su Google Cloud come elencato Pagina dei prezzi fino a quando non disabiliterai GKE Enterprise o non elimini il progetto.
Sei inoltre responsabile di altri costi di Google Cloud sostenuti durante l'esecuzione del Applicazione di esempio di Cymbal Bank, ad esempio addebiti per VM di Compute Engine e bilanciatori del carico.
Prima di iniziare
I primi tutorial di questa serie usano principalmente le funzionalità di base disponibili per tutti gli utenti di GKE, ma man mano che procedi nei tutorial utilizzi delle funzionalità aggiuntive disponibili solo tramite il livello Enterprise.
In questo primo tutorial della serie, completa tutti i seguenti passaggi "Inizia inizia" passaggi di configurazione prima di iniziare. Devi solo completare seguendo "Prima di iniziare" passaggi una sola volta.
Configura la shell e gli strumenti
In questa serie di tutorial, utilizzerai i seguenti strumenti per eseguire il deployment il tuo ambiente:
- gcloud CLI: crea e gestisci i cluster GKE parchi risorse, insieme ad altri servizi Google Cloud.
kubectl
: consente di gestire Kubernetes, il sistema di orchestrazione dei cluster utilizzato con GKE Enterprise.
Per eseguire i comandi in questa pagina, configura Google Cloud CLI e kubectl
in
uno dei seguenti ambienti di sviluppo:
Cloud Shell
Per utilizzare un terminale online con gcloud CLI e kubectl
già
configura Cloud Shell:
In fondo a questa pagina, viene avviata una sessione di Cloud Shell, tramite un prompt della riga di comando. La sessione può richiedere alcuni secondi vengono inizializzate.
Shell locale
Per utilizzare un ambiente di sviluppo locale, segui questi passaggi:
- Installa gcloud CLI.
- Inizializza gcloud CLI.
Installa
kubectl
gcloud CLI:gcloud components install kubectl
Configura il progetto
Segui questi passaggi per configurare un progetto Google Cloud, inclusa l'abilitazione di fatturazione e i servizi GKE. Questo è il progetto in cui dovrai abilitare GKE Enterprise.
Potresti aver bisogno di un amministratore di Google Cloud nella tua organizzazione per concederti l'accesso per creare o utilizzare un progetto e abilitare le API.
Nella console Google Cloud, vai alla pagina Google Kubernetes Engine:
Crea o seleziona un progetto. Questo è il progetto in cui abiliti con GKE Enterprise.
Se richiesto, abilita l'API GKE Enterprise.
Attendi che l'API e i servizi correlati siano abilitati. L'operazione può richiedere diversi minuti.
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
Dopo aver abilitato GKE, abilita la versione Google Kubernetes Engine (GKE) Enterprise:
Nella console Google Cloud, vai alla pagina GKE Enterprise:
Seleziona Scopri di più sulla versione Google Kubernetes Engine (GKE) Enterprise.
Se hai l'idoneità, puoi selezionare l'opzione Inizia la prova gratuita di 90 giorni.
Seleziona Abilita GKE Enterprise e poi Conferma.
Concedi ruoli IAM
Se sei il proprietario del progetto (ad esempio se hai creato tu il progetto), dispone già di tutte le autorizzazioni necessarie per completare questi tutorial. Se non sei il proprietario, assicurati che il tuo account Google Cloud abbia obbligatorio Ruoli IAM al progetto selezionato per questo insieme di tutorial. Anche in questo caso, potresti aver bisogno amministratore Google Cloud della tua organizzazione affinché contribuisca a concedere le ruoli.
Nei comandi seguenti, sostituisci PROJECT_ID
con il
l'ID generato automaticamente del progetto che hai creato o selezionato nel
sezione precedente. L'ID progetto è spesso diverso dal nome del progetto. Per
Ad esempio, il tuo progetto potrebbe essere scalable-apps, ma l'ID progetto potrebbe essere
scalable-apps-567123.
Grant roles to your user account. Run the following command once for each of the following
IAM roles:
roles/resourcemanager.projectIamAdmin, roles/iam.serviceAccountAdmin, roles/iam.serviceAccountUser, roles/iam.securityAdmin, roles/serviceusage.serviceUsageAdmin, roles/container.admin, roles/logging.logWriter, roles/gkehub.admin, roles/viewer, roles/monitoring.viewer
$ gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
clona l'applicazione di esempio
Clona il repository Git che include tutti i manifest di esempio per Cymbal Bank:
git clone https://github.com/GoogleCloudPlatform/bank-of-anthos
cd bank-of-anthos/
Crea un cluster
Una volta completati tutti i passaggi preliminari descritti nelle sezioni precedenti, puoi Ora inizia a creare un cluster Google Kubernetes Engine ed eseguire il deployment di un'applicazione di esempio.
GKE è un servizio Kubernetes gestito che puoi utilizzare per eseguire il deployment e gestire applicazioni containerizzate. Un ambiente GKE è costituito da nodi, ovvero macchine virtuali (VM) Compute Engine, raggruppate insieme a formare un cluster.
I cluster GKE possono anche essere raggruppati in parchi risorse: di cluster che possono essere gestiti insieme. Molti Funzionalità di GKE Enterprise, incluse quelle che utilizzerai più avanti basati sui parchi risorse e sui principi di uguaglianza e fiducia dei parchi risorse.
Crea un cluster GKE che utilizzerai nel resto dei tutorial di questa serie:
gcloud container clusters create-auto scalable-apps \ --project=PROJECT_ID \ --region=REGION \ --enable-fleet
Sostituisci quanto segue:
PROJECT_ID
con l'ID generato automaticamente del creato nella sezione precedente. L'ID progetto è spesso diverso dal nome del progetto. Ad esempio, il tuo progetto potrebbe essere scalable-apps, ma l'ID progetto potrebbe essere scalable-apps-567123.REGION
con la regione in cui vuoi creare in un cluster, ad esempious-central1
.
La creazione del cluster e la verifica che tutto funzioni correttamente richiedono alcuni minuti in modo corretto.
In questa serie di tutorial, utilizzerai i cluster in modalità Autopilot e intervalli di indirizzi IP predefiniti quando crei i cluster. Un deployment di produzione le tue applicazioni richiedono una pianificazione più attenta degli indirizzi IP. Nella Autopilot, Google gestisce la configurazione del cluster, tra cui scalabilità automatica, sicurezza e altre impostazioni preconfigurate. I cluster in modalità Autopilot sono ottimizzati per eseguire la maggior parte dei carichi di lavoro di produzione e per eseguire il provisioning delle risorse di calcolo in base ai manifest Kubernetes.
Esegui il deployment di Cymbal Bank
Puoi pacchettizzare le app (chiamate anche carichi di lavoro) in container. Esegui il deployment di set di container come pod ai tuoi nodi.
In questa serie di tutorial eseguirai il deployment di un'applicazione di esempio basata su microservizi chiamato Cymbal Bank a uno o più cluster GKE. Cymbal Bank utilizza Python e Java per eseguire i vari servizi e include un database PostgreSQL di un backend cloud. Non è necessaria esperienza con questi linguaggi o questa piattaforma di database per completare la serie di tutorial. Cymbal Bank è solo un'applicazione di esempio spiegarai in che modo la versione Google Kubernetes Engine (GKE) Enterprise può supportare le esigenze della tua azienda.
Quando utilizzi Cymbal Bank nell'ambito di questa serie di tutorial, tieni presente quanto segue: viene eseguito il deployment di alcuni servizi nel tuo cluster GKE:
Servizio | Lingua | Descrizione |
---|---|---|
frontend |
Python | Espone un server HTTP per la pubblicazione del sito web. Contiene una pagina di accesso, una pagina di registrazione e una home page. |
ledger-writer |
Java | Accetta e convalida le transazioni in arrivo prima di scriverle nel registro. |
balance-reader |
Java | Fornisce una cache leggibile efficiente dei saldi utente, come letto da ledger-db . |
transaction-history |
Java | Fornisce una cache leggibile efficiente delle transazioni passate, come lette da ledger-db . |
ledger-db |
PostgreSQL | Registro di tutte le transazioni. Opzione per precompilare con transazioni per gli utenti dimostrativi. |
user-service |
Python | Gestisce gli account utente e l'autenticazione. Firma i JWT utilizzati per l'autenticazione da parte di altri servizi. |
contacts |
Python | Archivia l'elenco di altri account associati a un utente. Utilizzato nel menu a discesa in "Invia pagamento" e "Deposito" moduli. |
accounts-db |
PostgreSQL | Database per gli account utente e i dati associati. Opzione per precompilare gli utenti della demo. |
loadgenerator |
Python / Locusta | Invia continuamente al frontend richieste che imitano gli utenti. Crea periodicamente nuovi account e simula le transazioni tra di loro. |
Per eseguire il deployment di Cymbal Bank nel tuo cluster GKE, completa la seguenti passaggi:
Cymbal Bank utilizza token web JSON (JWT) per gestire l'autenticazione degli utenti. JWT e utilizzare coppie di chiavi asimmetriche per firmare e verificare i token. In Cymbal Bank,
userservice
crea e firma i token con una chiave privata RSA quando un utente accede, mentre gli altri servizi usano la chiave pubblica corrispondente convalidare l'utente.Crea un JWT RS256 con una forza di 4096 bit:
openssl genrsa -out jwtRS256.key 4096 openssl rsa -in jwtRS256.key -outform PEM -pubout -out jwtRS256.key.pub
Se necessario, scaricare e installare gli strumenti OpenSSL per la tua piattaforma.
Un secret di Kubernetes può archiviare dati sensibili come chiavi o password. I carichi di lavoro in esecuzione nel cluster possono quindi accedere al secret per ottenere dati sensibili invece di inserirli tramite hardcoded nell'applicazione.
Crea un secret Kubernetes dal file della chiave che hai creato nella precedente che Cymbal Bank può utilizzare con le richieste di autenticazione:
kubectl create secret generic jwt-key --from-file=./jwtRS256.key --from-file=./jwtRS256.key.pub
Esegui il deployment di Cymbal Bank nel tuo cluster. Il comando seguente esegue il deployment di file manifest nella directory
kubernetes-manifests
. Ogni file manifest esegue il deployment e configura uno dei Servizi:kubectl apply -f kubernetes-manifests/accounts-db.yaml kubectl apply -f kubernetes-manifests/balance-reader.yaml kubectl apply -f kubernetes-manifests/config.yaml kubectl apply -f kubernetes-manifests/contacts.yaml kubectl apply -f extras/postgres-hpa/kubernetes-manifests/frontend.yaml kubectl apply -f kubernetes-manifests/ledger-db.yaml kubectl apply -f kubernetes-manifests/ledger-writer.yaml kubectl apply -f extras/postgres-hpa/loadgenerator.yaml kubectl apply -f kubernetes-manifests/transaction-history.yaml kubectl apply -f kubernetes-manifests/userservice.yaml
Potresti vedere messaggi nell'output
kubectl
man mano che vengono applicati i manifest al tuo cluster sui limiti Autopilot. Autopilot utilizza richieste di risorse specificate nella configurazione e configurare i nodi che eseguono i carichi di lavoro. Implementazione forzata di Autopilot richieste di risorse minima e massima in base alla classe di computing o configurazione hardware utilizzata dai carichi di lavoro. Se non specifichi per alcuni container, Autopilot assegna valori predefiniti che i container vengano eseguiti correttamente.Esamina il seguente manifest di esempio per il servizio
frontend
:Questo manifest per le richieste di servizio
frontend
che richiedono100m
di CPU e64Mi
. e imposta limiti di250m
di CPU e128Mi
per pod.Quando esegui il deployment di un carico di lavoro in un cluster Autopilot, GKE convalida la configurazione del carico di lavoro rispetto ai valori minimo e massimo consentiti per la classe di computing o la configurazione hardware selezionata (ad esempio GPU). Se se le tue richieste sono inferiori al minimo, Autopilot modifica la configurazione del carico di lavoro per portare le richieste all'interno consentito. Questi messaggi indicano che sono stati applicati i limiti appropriati assegnati automaticamente.
Attendi che i pod siano pronti. Usa
kubectl
per controllare lo stato della Pod:kubectl get pods
La colonna
STATUS
cambia daPending
aContainerCreating
. La creazione qualche minuto affinché tutti i pod siano nello statoRunning
, come mostrato in il seguente output di esempio:NAME READY STATUS RESTARTS AGE accounts-db-6f589464bc-6r7b7 1/1 Running 0 99s balancereader-797bf6d7c5-8xvp6 1/1 Running 0 99s contacts-769c4fb556-25pg2 1/1 Running 0 98s frontend-7c96b54f6b-zkdbz 1/1 Running 0 98s ledger-db-5b78474d4f-p6xcb 1/1 Running 0 98s ledgerwriter-84bf44b95d-65mqf 1/1 Running 0 97s loadgenerator-559667b6ff-4zsvb 1/1 Running 0 97s transactionhistory-5569754896-z94cn 1/1 Running 0 97s userservice-78dc876bff-pdhtl 1/1 Running 0 96s
Quando tutti i pod sono nello stato
Running
, vai al passaggio successivo. Anche in questo caso, sono necessari alcuni minuti perché tutti i pod si trovino in un ambienteRunning
stato. È normale che alcuni pod segnalino lo statoREADY
pari a0/1
finché Cymbal Bank non sarà pronta a gestire correttamente il traffico.Il servizio
frontend
espone un server HTTP per gestire Cymbal Bank sito web, incluse la pagina di accesso, la pagina di registrazione e la home page. Un traffico in entrata definisce le regole per instradare il traffico HTTP(S) alle applicazioni in esecuzione in un cluster utilizzando un bilanciatore del carico HTTP(S) di Google Cloud.Ottieni l'indirizzo IP esterno per la risorsa Ingress
frontend
:kubectl get ingress frontend | awk '{print $4}'
In una finestra del browser web, apri l'indirizzo IP mostrato nell'output del
kubectl get ingress
per accedere alla tua istanza di Cymbal Bank.Le credenziali predefinite vengono compilate automaticamente, quindi puoi accedere a l'app ed esplorare alcune transazioni e saldi di esempio. Esistono nessuna azione specifica da intraprendere se non per confermare che Cymbal La banca viene eseguita correttamente. Potrebbero essere necessari un paio di minuti per tutti i servizi comunicare correttamente e consentirti di accedere.
Esplora il tuo deployment
Dopo aver creato un cluster GKE ed eseguito il deployment dei carichi di lavoro, potresti devi modificare le impostazioni o esaminare le prestazioni dell'applicazione. In questo Imparerai a utilizzare la console Google Cloud per esaminare le risorse fanno parte del tuo cluster e dell'applicazione di esempio Cymbal Bank.
Come introdotto al momento della creazione del cluster, GKE Enterprise funzionalità si basano sull'idea della flotta: un raggruppamento logico di cluster Kubernetes che possono essere gestiti insieme. Ad esempio, potresti avere utilizzati da team diversi, contengono le repliche delle applicazioni regioni diverse per motivi di latenza e affidabilità o per segmentare i carichi di lavoro con requisiti di sicurezza diversi. Un parco risorse aiuta a organizzare i gruppi di questi cluster correlati.
La panoramica di GKE Enterprise nella console Google Cloud fornisce
per fornirti una visione generale dell'intero parco dispositivi. Quando hai creato
cluster GKE, è stato registrato automaticamente nel parco risorse utilizzando
il parametro --enable-fleet
.
Per visualizzare le informazioni su GKE Enterprise e sul parco risorse, vai a Pagina Panoramica nella console Google Cloud:
Vai alla panoramica di GKE Enterprise
La pagina Panoramica mostra le seguenti informazioni:
- Il numero di cluster presenti nel tuo parco risorse e se sono in stato integro.
- L'utilizzo delle risorse del parco risorse, inclusi utilizzo di CPU, memoria e disco, e aggregati per parco risorse e per cluster.
- Eventuali problemi di sicurezza identificati per il tuo parco risorse, per l'intero parco risorse la copertura di Policy Controller e lo stato di sincronizzazione Pacchetti Config Sync. Aggiungi Policy Controller e Config Sync a nei tutorial futuri di questa serie.
La pagina Cluster di GKE mostra tutti i cluster progetto. Per i cluster registrati in un parco risorse è elencato il parco risorse Colonna Flotta.
Nelle sezioni seguenti, approfondirai l'esperienza di Cymbal Bank delle risorse GKE.
Cluster
In questo tutorial hai creato un cluster GKE e hai eseguito il deployment Carichi di lavoro di Cymbal Bank.
Nella pagina Google Kubernetes Engine della console Google Cloud, vai a Cluster .
Fai clic sul cluster scalable-apps di cui è stato eseguito il deployment. Nei dettagli del cluster che si apre, puoi visualizzare i dettagli di base del cluster e i relativi configurazioni di rete e sicurezza. Puoi anche vedere quali Le funzionalità GKE sono abilitate in questo cluster nella sezione Funzionalità. .
Osservabilità
Puoi visualizzare le metriche di base per l'integrità e le prestazioni del cluster. Nella Nel prossimo tutorial di questa serie, abiliterai Google Cloud Managed Service per Prometheus a un monitoraggio e a un'osservabilità più granulari.
Seleziona il cluster dalla pagina Cluster di Google Kubernetes Engine Console Google Cloud, quindi vai alla scheda Osservabilità.
Esamina alcuni elementi grafici delle metriche, ad esempio CPU e Memoria. Questo consente di monitorare le prestazioni delle diverse parti del cluster senza dover eseguire il deployment di funzionalità di monitoraggio aggiuntive.
Per visualizzare i log trasmessi dal cluster, seleziona la scheda Log. Puoi filtra per gravità dei log o crea filtri personalizzati per visualizzare dati specifici spazi dei nomi, servizi o pod. Come per gli avvisi e gli eventi relativi ai pod, la visualizzazione compressa dei log del cluster può aiutare a eseguire rapidamente il debug dei problemi utilizzando la console Google Cloud.
È normale vedere le voci di log quando viene eseguito il deployment di Cymbal Bank la prima volta alcuni servizi non sono ancora in grado di comunicare.
Seleziona la scheda Errori dell'app. Durante l'esecuzione dei carichi di lavoro, puoi visualizzare avvisi ed eventi compressi nella console Google Cloud. Questo approccio può aiutare eseguire il debug dei problemi senza doverti connettere al cluster, ai nodi o ai pod singolarmente.
Anche in questo caso, è normale che gli eventi vengano registrati quando viene eseguito il deployment di Cymbal Bank quando alcuni Servizi non sono ancora in grado di comunicare.
Carichi di lavoro
La pagina GKE della console Google Cloud ha una sezione Carichi di lavoro che mostra una visualizzazione aggregata dei carichi di lavoro in esecuzione su tutti cluster GKE.
Nella pagina Google Kubernetes Engine della console Google Cloud, vai al file Carichi di lavoro .
Vai alla pagina Carichi di lavoro
La scheda Panoramica mostra un elenco di carichi di lavoro e spazi dei nomi del cluster GKE. Puoi filtrare per spazi dei nomi per vedere in ogni spazio dei nomi.
Servizi e ingress
I Servizi e La vista Ingress mostra il servizio e l'Ingress del progetto Google Cloud. Un servizio espone un insieme di pod come servizio di rete con un mentre una risorsa Ingress gestisce l'accesso esterno ai servizi in un cluster.
Nella pagina Google Kubernetes Engine della console Google Cloud, vai a Gateway, Servizi e in entrata.
Per trovare il traffico in entrata di Cymbal Bank, fai clic sulla scheda "Ingress". e trova in entrata con il nome
frontend
. Un traffico in entrata gestisce il traffico in entrata la tua applicazione. Puoi visualizzare le informazioni su bilanciatore del carico, porte endpoint esterni.Fai clic sull'indirizzo IP per il traffico
frontend
in entrata, ad esempio198.51.100.143:80
. Questo indirizzo si apre nell'interfaccia web di Cymbal Bank.
Esegui la pulizia
L'insieme di tutorial per Cymbal Bank è pensato per essere completato uno dopo il e l'altro. Man mano che procedi nella serie di tutorial, acquisisci nuove competenze e per utilizzare altri prodotti e servizi Google Cloud.
Se vuoi fare una pausa prima di passare al prossimo tutorial ed evitare comportano addebiti sul tuo account Google Cloud per le risorse utilizzate in elimina il progetto che hai creato.
- Nella console Google Cloud, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
Passaggi successivi
Scopri come monitorare i carichi di lavoro in GKE Enterprise utilizzando Google Cloud Managed Service per Prometheus e Cloud Monitoring nel prossimo tutorial.