Questo tutorial introduce una soluzione pronta all'uso che utilizza Google Distributed Cloud e Config Sync per eseguire il deployment di cluster Kubernetes su larga scala in ambienti perimetrali. Questo tutorial è rivolto operatori di piattaforma e sviluppatori. Prima di leggere questo documento, assicurati di conoscere le seguenti tecnologie e concetti:
- Playbook Ansible.
- Deployment a livello perimetrale e le relative sfide.
- Come lavorare con un progetto Google Cloud.
- Eseguire il deployment di un'applicazione web containerizzata.
- Interfacce a riga di comando
gcloud
ekubectl
.
In questo tutorial utilizzi le macchine virtuali (VM) Compute Engine per emulare i nodi di cui è stato eseguito il deployment sul confine e un'applicazione point of sale di esempio come carico di lavoro di confine. Google Distributed Cloud e Config Sync forniscono gestione e controllo centralizzati per il tuo cluster perimetrale. Config Sync estrae dinamicamente le nuove configurazioni da GitHub e applica di questi criteri e configurazioni ai tuoi cluster.
Architettura di deployment a livello perimetrale
Un deployment edge per la vendita al dettaglio è un buon modo per illustrare l'architettura utilizzata in un tipico deployment di Google Distributed Cloud.
Un negozio fisico è il punto di interazione più vicino tra l'enterprise e il consumatore. I sistemi software all'interno dei negozi devono i carichi di lavoro, ricevere aggiornamenti tempestivi e generare report sulle metriche critiche dall'isolamento dal sistema di gestione centrale dell'azienda. Inoltre, questi sistemi software devono essere progettati in modo da poter essere ampliati in modo da più località in futuro. Sebbene Google Distributed Cloud soddisfi tutti questi requisiti, per i sistemi software dei negozi, profilo edge consente un caso d'uso importante: deployment in ambienti con risorse hardware limitate come la vetrina di un negozio.
Il seguente diagramma mostra un deployment Google Distributed Cloud che utilizza il in un negozio di vendita al dettaglio:
Il diagramma precedente mostra un tipico negozio fisico. Il negozio dispone di dispositivi intelligenti come lettori di carte, macchine point-of-sale, videocamere e stampanti.
Il negozio dispone anche di tre dispositivi hardware di calcolo fisico (etichettati Node 1
, Node 2
e Node 3
).
Tutti questi dispositivi sono collegati a uno switch di rete centrale. Pertanto, i tre dispositivi di calcolo sono collegati tra loro tramite una rete di livello 2. La
I dispositivi di elaborazione dati in rete costituiscono l'infrastruttura bare metal.
Google Distributed Cloud è in esecuzione in ciascuno dei tre dispositivi di calcolo. Questi
I dispositivi dispongono inoltre di un proprio spazio di archiviazione su disco e sono configurati per la replica dei dati
tra loro per garantire l'alta disponibilità.
Il diagramma mostra anche i seguenti componenti chiave che fanno parte di un Deployment di Google Distributed Cloud:
- Il componente contrassegnato come MetalLB è il bilanciatore del carico in bundle di cui viene eseguito il deployment con Google Distributed Cloud.
- Il componente Config Sync consente di sincronizzare lo stato del cluster rispetto ai repository di origine. Si tratta di un modello facoltativo che richiede installazione e configurazione separate. Per maggiori informazioni informazioni su come configurare Config Sync e della nomenclatura, vedi documentazione di Config Sync.
Il repository principale e il repository dello spazio dei nomi mostrati nella parte superiore del diagramma al di fuori della posizione del negozio rappresentano due repository di origine.
Le modifiche al cluster vengono inviate a questi repository di origine centrali. I deployment Google Distributed Cloud in varie località perimetrali scaricano gli aggiornamenti dal repository di codice sorgente. Questo comportamento è rappresentato dalle frecce che collegano tra i due repository nel diagramma a Config Sync all'interno del cluster Google Distributed Cloud in esecuzione dispositivi mobili.
Un altro componente chiave rappresentato all'interno del cluster è il runtime VM su GDC. Il runtime VM su GDC consente l'esecuzione di applicazioni Carichi di lavoro basati su VM all'interno del cluster senza la necessità di containerizzazione. La documentazione del runtime VM su GDC spiega come attivarlo ed eseguire il deployment dei carichi di lavoro VM nel cluster.
Il componente contrassegnato come Applicazione indica il software di cui è stato eseguito il deployment in dal punto vendita. L'applicazione point of sale visualizzata nei kiosk un negozio di vendita al dettaglio potrebbe essere un esempio di questa applicazione.
Le caselle nella parte inferiore del diagramma rappresentano i numerosi dispositivi (come chioschi, tablet o videocamere) all'interno di un negozio di vendita al dettaglio, tutti connessi a un switch di rete centrale. Il networking locale all'interno dello store consente applicazioni in esecuzione all'interno del deployment Google Distributed Cloud per raggiungere dispositivi mobili.
Nella sezione successiva viene mostrata l'emulazione di questo deployment del negozio di vendita al dettaglio in Google Cloud utilizzando le VM Compute Engine. Questa emulazione è ciò che utilizzerai nel tutorial che segue per sperimentare con Google Distributed Cloud.
Deployment perimetrale emulato in Google Cloud
Il seguente diagramma è una rappresentazione di tutto ciò che hai configurato Google Cloud in questo tutorial. Questo diagramma è correlato al negozio diagramma della sezione precedente. Questo deployment rappresenta una località edge simulata in cui è implementata l'applicazione point of sale. L'architettura mostra anche un semplice carico di lavoro dell'applicazione di esempio point of sale questo tutorial. Accedi all'applicazione point of sale all'interno del cluster utilizzando un browser web come kiosk.
Le tre macchine virtuali (VM) Compute Engine nel diagramma precedente rappresentano l'hardware (o i nodi) fisico in una tipica località perimetrale. Questo hardware verrà collegato a switch di rete per formare l'infrastruttura bare metal. Nel nostro ambiente emulato in Google Cloud, queste VM sono connesse tra loro tramite Virtual Private Cloud (VPC) nel progetto Google Cloud.
In una tipica installazione di Google Distributed Cloud puoi configurare i tuoi bilanciatori del carico. Tuttavia, per questo tutorial non devi configurare un carico esterno con il bilanciatore del carico di rete passthrough esterno regionale. Utilizza invece il bilanciatore del carico MetalLB in bundle installato con Google Distributed Cloud. Il bilanciatore del carico MetalLB in bundle richiede connettività di rete di livello 2 tra i nodi. Pertanto, la connettività di livello 2 tra le VM Compute Engine viene attivata creando una rete overlay VxLAN sulla rete VPC (Virtual Private Cloud) predefinita.
All'interno del rettangolo con l'etichetta "Rete overlay L2 (VxLAN)", il software in esecuzione all'interno delle tre VM di Compute Engine. Questo rettangolo include il cluster Google Distributed Cloud e un proxy inverso. Il cluster è rappresentato dal rettangolo "Google Distributed Cloud". Questo rettangolo che rappresenta l'ammasso include un altro rettangolo contrassegnato come "Spazio dei nomi Kubernetes (pos)". Rappresenta uno spazio dei nomi Kubernetes all'interno del cluster. Tutti i componenti all'interno di questo spazio dei nomi Kubernetes l'applicazione point of sale di cui è stato eseguito il deployment nel cluster Google Distributed Cloud. L'applicazione point of sale ha tre microservizi: API Server, Inventory e Payments. Tutti questi componenti insieme rappresentano un'"applicazione" mostrata nel diagramma dell'architettura di implementazione di Edge precedente.
Il bilanciatore del carico MetalLB incluso del cluster Google Distributed Cloud non può essere raggiunto direttamente dall'esterno delle VM. Il diagramma mostra una Proxy inverso NGINX configurato per essere eseguito all'interno delle VM per instradare il traffico in entrata di Compute Engine al bilanciatore del carico. Questa è solo una soluzione alternativa per agli scopi di questo tutorial in cui i nodi perimetrali vengono emulati utilizzando Google Cloud di Compute Engine. In una posizione di confine reale, questa operazione può essere eseguita con una configurazione di rete adeguata.
Obiettivi
- Utilizza le VM Compute Engine per emulare un'infrastruttura bare metal in esecuzione in una località edge.
- Crea un cluster Google Distributed Cloud nell'infrastruttura edge emulata.
- Connetti e registra il cluster con Google Cloud.
- Esegui il deployment di un carico di lavoro di esempio dell'applicazione point of sale nel cluster Google Distributed Cloud.
- Utilizzare la console Google Cloud per verificare e monitorare l'applicazione point of sale che opera sulla località perimetrale.
- Utilizza Config Sync per aggiornare l'applicazione point of sale in esecuzione sul cluster Google Distributed Cloud.
Prima di iniziare
Nella pagina del selettore progetti della console Google Cloud, seleziona oppure creare un progetto Google Cloud.
Verifica che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verifica se la fatturazione è abilitata su un progetto.
Installa e inizializzare con Google Cloud CLI.
Crea un fork e clona il repository anthos-samples
Tutti gli script utilizzati in questo tutorial sono archiviati in anthos-samples
repository Git. La struttura delle cartelle in
/anthos-bm-edge-deployment/acm-config-sink
è organizzato in base a ciò che
previsto da Config Sync.
Clona questo repository nel tuo account GitHub prima di continuare con i passaggi seguenti.
Se non ne hai già uno, crea un account su GitHub.
Crea un token di accesso personale da utilizzare nella configurazione di Config Sync. Questo è necessario per consentire ai componenti Config Sync nel cluster di autenticarsi con il tuo account GitHub quando si tenta di sincronizzare le nuove modifiche.
- Seleziona solo l'ambito
public_repo
. - Salva il token di accesso che hai creato in un luogo sicuro per utilizzarlo in un secondo momento.
- Seleziona solo l'ambito
Crea un fork del repository
anthos-samples
nel tuo account GitHub:- Vai al repository anthos-samples.
- Fai clic sull'icona Fork nell'angolo in alto a destra della pagina.
- Fai clic sull'account utente GitHub in cui vuoi creare un fork del repository. Tu
vengono reindirizzati automaticamente alla pagina con la versione creata con fork
Repository
anthos-samples
.
Apri un terminale nel tuo ambiente locale.
Per clonare il repository creato mediante fork, esegui il comando riportato di seguito, dove GITHUB_USERNAME è il nome utente per il tuo account GitHub:
git clone https://github.com/GITHUB_USERNAME/anthos-samples cd anthos-samples/anthos-bm-edge-deployment
Configura l'ambiente di workstation
Per completare il deployment a livello perimetrale descritto in questo documento, è necessario workstation con accesso a internet e i seguenti strumenti installati:
- Docker
- Strumento dell'interfaccia a riga di comando envsubst (di solito preinstallato su Linux e altri sistemi operativi tipo Unix)
Esegui tutti i comandi del tutorial sulla workstation che configuri in questa sezione.
Sulla workstation, inizializza le variabili di ambiente in una nuova istanza shell:
export PROJECT_ID="PROJECT_ID" export REGION="us-central1" export ZONE="us-central1-a" # port on the admin Compute Engine instance you use to set up an nginx proxy # this allows to reach the workloads inside the cluster via the VM IP export PROXY_PORT="8082" # should be a multiple of 3 since N/3 clusters are created with each having 3 nodes export GCE_COUNT="3" # url to the fork of: https://github.com/GoogleCloudPlatform/anthos-samples export ROOT_REPO_URL="https://github.com/GITHUB_USERNAME/anthos-samples" # this is the username used to authenticate to your fork of this repository export SCM_TOKEN_USER="GITHUB_USERNAME" # access token created in the earlier step export SCM_TOKEN_TOKEN="ACCESS_TOKEN"
Sostituisci i seguenti valori:
- PROJECT_ID: l'ID del tuo progetto Google Cloud.
- GITHUB_USERNAME: il tuo nome utente GitHub.
- ACCESS_TOKEN: il token di accesso personale che hai creato per il tuo repository GitHub.
Mantieni i valori predefiniti per le altre variabili di ambiente. che sono descritte nelle sezioni che seguono.
Nella tua workstation, inizializza Google Cloud CLI:
gcloud config set project "${PROJECT_ID}" gcloud services enable compute.googleapis.com gcloud config set compute/region "${REGION}" gcloud config set compute/zone "${ZONE}"
Nella tua workstation, crea l'account di servizio Google Cloud per le istanze Compute Engine. Questo script crea il file della chiave JSON per il nuovo account di servizio in
<REPO_ROOT>/anthos-bm-edge-deployment/build-artifacts/consumer-edge-gsa.json
. Configura inoltre il portachiavi e la chiave di Cloud Key Management Service per la crittografia della chiave privata SSH../scripts/create-primary-gsa.sh
L'esempio seguente è solo una parte dello script. Per vedere l'intera fai clic su Visualizza su GitHub.
Esegui il provisioning delle istanze Compute Engine
In questa sezione creerai le VM di Compute Engine in cui Google Distributed Cloud verrà installata. Verifica anche la connettività a queste VM prima di procedere alla sezione di installazione.
Sulla workstation, crea chiavi SSH che vengono utilizzate per la comunicazione le istanze di Compute Engine.
ssh-keygen -f ./build-artifacts/consumer-edge-machine
Cripta la chiave privata SSH utilizzando Cloud Key Management Service.
gcloud kms encrypt \ --key gdc-ssh-key \ --keyring gdc-ce-keyring \ --location global \ --plaintext-file build-artifacts/consumer-edge-machine \ --ciphertext-file build-artifacts/consumer-edge-machine.encrypted
Genera il file di configurazione dell'ambiente
.envrc
e eseguine il commit. Dopo il giorno creato, esamina il file.envrc
per assicurarti che le variabili di ambiente abbiano siano stati sostituiti con i valori corretti.envsubst < templates/envrc-template.sh > .envrc source .envrc
Di seguito è riportato un esempio di file
.envrc
generato sostituendo il metodo variabili di ambiente nel filetemplates/envrc-template.sh
. Nota che le righe aggiornate sono evidenziate:Crea istanze di Compute Engine in cui è installato Google Distributed Cloud.
./scripts/cloud/create-cloud-gce-baseline.sh -c "$GCE_COUNT" | \ tee ./build-artifacts/gce-info
Installa Google Distributed Cloud con Ansible
Lo script utilizzato in questa guida crea cluster Google Distributed Cloud in gruppi di tre istanze Compute Engine. Il numero di cluster creati è controllato dalla variabile di ambiente GCE_COUNT
. Ad esempio, imposti
la variabile di ambiente GCE_COUNT
in 6
per crearne due
Cluster Google Distributed Cloud con 3
istanze VM ciascuno. Per impostazione predefinita, la variabile di ambiente GCE_COUNT
è impostata su 3
. Pertanto, in questa guida verrà creato un
cluster con 3
istanze Compute Engine. Le istanze VM
vengono denominate con un prefisso cnuc-
seguito da un numero. La prima istanza VM di ogni cluster funge da workstation di amministrazione da cui viene attivata l'installazione. Al cluster viene anche assegnato lo stesso nome dell'amministratore
VM workstation (ad esempio cnuc-1
, cnuc-4
, cnuc-7
).
Il playbook Ansible esegue le seguenti operazioni:
- Configura le istanze Compute Engine con gli strumenti necessari, come
docker
,bmctl
,gcloud
enomos
. - Installa Google Distributed Cloud nelle istanze Compute Engine configurate.
- Crea un cluster autonomo Google Distributed Cloud denominato
cnuc-1
. - Registra il cluster
cnuc-1
con Google Cloud. - Installa Config Sync nel cluster
cnuc-1
. - Configura Config Sync per la sincronizzazione con il cluster
configurazioni situate in
anthos-bm-edge-deployment/acm-config-sink
nel repository creato con fork. - Genera il file
Login token
per il cluster.
Completa i seguenti passaggi per configurare e avviare la procedura di installazione:
Nella workstation, crea l'immagine Docker utilizzata per l'installazione. Questa immagine contiene tutti gli strumenti necessari per la procedura di installazione, come Ansible, Python e Google Cloud CLI.
gcloud builds submit --config docker-build/cloudbuild.yaml docker-build/
Quando la compilazione viene eseguita correttamente, viene generato un output simile al seguente:
... latest: digest: sha256:99ded20d221a0b2bcd8edf3372c8b1f85d6c1737988b240dd28ea1291f8b151a size: 4498 DONE ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ID CREATE_TIME DURATION SOURCE IMAGES STATUS 2238baa2-1f41-440e-a157-c65900b7666b 2022-08-17T19:28:57+00:00 6M53S gs://my_project_cloudbuild/source/1660764535.808019-69238d8c870044f0b4b2bde77a16111d.tgz gcr.io/my_project/consumer-edge-install (+1 more) SUCCESS
Genera il file dell'inventario Ansible da un modello.
envsubst < templates/inventory-cloud-example.yaml > inventory/gcp.yaml
Esegui lo script di installazione che avvia un container Docker dall'immagine creato in precedenza. Lo script utilizza internamente Docker per generare il contenitore con un montaggio del volume nella directory di lavoro corrente. Con successo di questo script devi trovarti all'interno del container Docker è stato creato. Attiva l'installazione di Ansible dall'interno di questo contenitore.
./install.sh
Quando lo script viene eseguito correttamente, produce un output simile al seguente:
... Check the values above and if correct, do you want to proceed? (y/N): y Starting the installation Pulling docker install image... ============================== Starting the docker container. You will need to run the following 2 commands (cut-copy-paste) ============================== 1: ./scripts/health-check.sh 2: ansible-playbook all-full-install.yaml -i inventory 3: Type 'exit' to exit the Docker shell after installation ============================== Thank you for using the quick helper script! (you are now inside the Docker shell)
Dall'interno del container Docker, verifica l'accesso a Compute Engine di Compute Engine.
./scripts/health-check.sh
Quando lo script viene eseguito correttamente, produce un output simile al seguente:
... cnuc-2 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"} cnuc-3 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"} cnuc-1 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"}
All'interno del contenitore Docker, esegui il playbook Ansible per l'installazione di Google Distributed Cloud sulle istanze Compute Engine. Al termine, vedrai l'
Login Token
del cluster stampato sullo schermo.ansible-playbook all-full-install.yaml -i inventory | tee ./build-artifacts/ansible-run.log
Se l'installazione viene eseguita correttamente, viene generato un output simile al seguente:
... TASK [abm-login-token : Display login token] ************************************************************************** ok: [cnuc-1] => { "msg": "eyJhbGciOiJSUzI1NiIsImtpZCI6Imk2X3duZ3BzckQyWmszb09sZHFMN0FoWU9mV1kzOWNGZzMyb0x2WlMyalkifQ.eymljZS1hY2NvdW iZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImVkZ2Etc2EtdG9rZW4tc2R4MmQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2Nvd 4CwanGlof6s-fbu8" } skipping: [cnuc-2] skipping: [cnuc-3] PLAY RECAP *********************************************************************************************************** cnuc-1 : ok=205 changed=156 unreachable=0 failed=0 skipped=48 rescued=0 ignored=12 cnuc-2 : ok=128 changed=99 unreachable=0 failed=0 skipped=108 rescued=0 ignored=2 cnuc-3 : ok=128 changed=99 unreachable=0 failed=0 skipped=108 rescued=0 ignored=2
Accedi al cluster Google Distributed Cloud nella console Google Cloud
Una volta eseguito il playbook Ansible fino al completamento, Il cluster Google Distributed Cloud è installato all'interno di Compute Engine delle VM in esecuzione. Questo cluster viene registrato anche in Google Cloud utilizzando Agente Connect. Tuttavia, per visualizzare i dettagli di questo cluster, devi registrare al cluster dalla console Google Cloud. Per accedere al Completa i seguenti passaggi per il cluster GKE.
Copia il token dall'output del playbook Ansible nella precedente .
Nella console Google Cloud, vai alla pagina Cluster Kubernetes e utilizza il token copiato per accedere al cluster
cnuc-1
.Vai alla pagina dei cluster Kubernetes
- Nell'elenco dei cluster, fai clic su
cnuc-1
, quindi fai clic su Accedi.
Azioni
accanto al cluster - Seleziona Token e incolla il token copiato.
- Fai clic su Login (Accedi).
- Nell'elenco dei cluster, fai clic su
- Nella console Google Cloud, vai alla pagina Configurazione nella sezione Funzionalità.
Nella scheda Pacchetti, controlla la colonna Stato sincronizzazione nella tabella dei cluster.
Verifica che lo stato sia Sincronizzato. Uno stato Sincronizzato indica che
Config Sync
ha sincronizzato correttamente le configurazioni di GitHub con il cluster distribuito, cnuc-1
.
Configura un proxy per il traffico esterno
Il cluster Google Distributed Cloud installato nei passaggi precedenti utilizza un bilanciatore del carico incluso chiamato MetalLB.
Questo servizio di bilanciamento del carico è accessibile solo tramite un indirizzo IP Virtual Private Cloud (VPC). Per instradare il traffico in entrata tramite il suo
IP esterno al bilanciatore del carico in bundle, configura un servizio di proxy inverso nell'hosting
amministratore (cnuc-1
). Questo servizio di proxy inverso ti consente di raggiungere il server API
dell'applicazione point of sale tramite l'IP esterno dell'hosting
amministratore (cnuc-1
).
Gli script di installazione nei passaggi precedenti hanno installato NGINX nei host di amministrazione insieme a un file di configurazione di esempio. Aggiorna questo file in utilizza l'indirizzo IP del servizio bilanciatore del carico e riavvia NGINX.
Sulla workstation, utilizza SSH per accedere alla workstation di amministrazione:
ssh -F ./build-artifacts/ssh-config abm-admin@cnuc-1
Dalla workstation di amministrazione, configura il proxy inverso NGINX per instradare il traffico al servizio di bilanciamento del carico del server API. Ottieni l'indirizzo IP del carico servizio Kubernetes di tipo di bilanciatore:
ABM_INTERNAL_IP=$(kubectl get services api-server-lb -n pos | awk '{print $4}' | tail -n 1)
Aggiorna il file di configurazione del modello con l'indirizzo IP recuperato:
sudo sh -c "sed 's/<K8_LB_IP>/${ABM_INTERNAL_IP}/g' \ /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf"
Riavvia NGINX per assicurarti che la nuova configurazione venga applicata:
sudo systemctl restart nginx
Controlla e verifica che lo stato del server NGINX riporti "attivo (in esecuzione)":
sudo systemctl status nginx
Quando NGINX viene eseguito correttamente, produce un output come l'esempio seguente:
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-09-17 02:41:01 UTC; 2s ago Docs: man:nginx(8) Process: 92571 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 92572 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 92573 (nginx) Tasks: 17 (limit: 72331) Memory: 13.2M CGroup: /system.slice/nginx.service ├─92573 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─92574 nginx: worker process ├─92575 nginx: worker process ├─92577 nginx: .... ... ...
Esci dalla sessione SSH nella workstation di amministrazione:
exit
Esci dalla sessione di shell nel container Docker. Quando esci dall'istanza di amministrazione, sei ancora all'interno del container Docker utilizzato per l'installazione:
exit
Accedere all'applicazione point of sale
Con la configurazione del proxy esterno puoi accedere all'applicazione in esecuzione all'interno del cluster GKE. Per accedere all'applicazione point of sale di esempio: completa i seguenti passaggi.
Sulla workstation, ottieni l'indirizzo IP esterno dell'istanza Compute Engine di amministrazione e accedi all'interfaccia utente dell'applicazione point of sale:
EXTERNAL_IP=$(gcloud compute instances list \ --project ${PROJECT_ID} \ --filter="name:cnuc-1" \ --format="get(networkInterfaces[0].accessConfigs[0].natIP)") echo "Point the browser to: ${EXTERNAL_IP}:${PROXY_PORT}"
Una volta eseguiti correttamente, gli script producono output come il seguente:
Point the browser to: 34.134.194.84:8082
Apri il browser web e vai all'indirizzo IP mostrato nell'output del comando precedente. Puoi accedere e testare l'applicazione punto di vendita di esempio, come mostrato nello screenshot di esempio seguente:
Utilizza Config Sync per aggiornare il server API
È possibile eseguire l'upgrade dell'applicazione di esempio a una versione più recente aggiornando il
di configurazione nel repository radice. Config Sync rileva
gli aggiornamenti e apporta automaticamente le modifiche al cluster. In questo esempio
il repository radice è il repository anthos-samples
che hai clonato nel
all'inizio di questa guida. Per scoprire in che modo l'applicazione point of sale di esempio può eseguire un deployment di upgrade a una versione più recente, completa i seguenti passaggi.
Nella tua workstation, aggiorna il campo
image
per modificare la versione del server API dav1
av2
. La configurazione YAML per il deployment file all'indirizzoanthos-bm-edge-deployment/acm-config-sink/namespaces/pos/api-server.yaml
.Aggiungi, esegui il commit delle modifiche ed esegui il push delle modifiche al repository creato con fork:
git add acm-config-sink/namespaces/pos/api-server.yaml git commit -m "chore: updated api-server version to v2" git push
Nella console Google Cloud, vai alla pagina Config Sync per verificare lo stato delle specifiche di configurazione. Verifica che lo stato sia Sincronizzato.
Nella console Google Cloud, vai alla pagina Carichi di lavoro Kubernetes Engine per verificare che il deployment sia aggiornato.
Quando lo stato del deployment è OK, indirizza il browser all'indirizzo IP indicato nella sezione precedente per visualizzare l'applicazione point of sale. Tieni presente che la versione nel titolo mostra "V2", a indicare che la modifica dell'applicazione è stata implementata, come mostrato nello screenshot di esempio seguente:
Potrebbe essere necessario aggiornare manualmente la scheda del browser per vedere le modifiche.
Esegui la pulizia
Per evitare addebiti Google Cloud non necessari, elimina le risorse utilizzate per questa guida al termine. Puoi eliminarli manualmente le risorse o eliminare il tuo progetto Google Cloud, di tutte le risorse. Potresti anche voler eliminare le modifiche apportate nella workstation locale:
Workstation locale
Per annullare le modifiche apportate dagli script di installazione, devono essere aggiornati i seguenti file.
- Rimuovi gli indirizzi IP delle VM di Compute Engine aggiunti al file
/etc/hosts
. - Rimuovi la configurazione SSH per
cnuc-*
nel file~/.ssh/config
. - Rimuovi le impronte delle VM Compute Engine dal file
~/.ssh/known_hosts
.
Elimina progetto
Se hai creato un progetto dedicato per questa procedura, elimina il progetto Google Cloud
dalla console Google Cloud.
Manuale
Se hai utilizzato un progetto esistente per questa procedura, segui questi passaggi:
- Annulla la registrazione di tutti i cluster Kubernetes con un nome preceduto da
cnuc-
. - Elimina tutte le VM di Compute Engine con un nome preceduto da
cnuc-
. - Elimina il bucket Cloud Storage con un nome preceduto da
abm-edge-boot
. - Elimina le regole firewall
allow-pod-ingress
eallow-pod-egress
. - Elimina il secret di Secret Manager
install-pub-key
.
Passaggi successivi
Puoi espandere questa guida aggiungendo un'altra località di confine. L'impostazione del parametro
GCE_COUNT
variabile di ambiente 6
ed eseguendo nuovamente gli stessi passaggi da
precedenti crea tre nuove istanze
(cnuc-4
, cnuc-5
, cnuc-6
) e un nuovo Google Distributed Cloud
cluster autonomo denominato cnuc-4
.
Puoi anche provare ad aggiornare le configurazioni dei cluster
nel repository creato con fork per applicare selettivamente le diverse versioni
un'applicazione point of sale ai due cluster, cnuc-1
e cnuc-4
, utilizzando
ClusterSelectors.
Per informazioni dettagliate sui singoli passaggi di questa guida e sugli script coinvolti, consulta il repository anthos-samples.