Questa guida mostra come eseguire il deployment di un cluster di database di vettori Qdrant su Google Kubernetes Engine (GKE).
I database vettoriali sono spazi di archiviazione dei dati progettati specificamente per gestire e cercare in grandi raccolte di vettori ad alta dimensione. Questi vettori rappresentano dati come testo, immagini, audio, video o qualsiasi dato che può essere codificato numericamente. A differenza dei database tradizionali che si basano su corrispondenze esatte, i database vettoriali si specializzano nel trovare elementi simili o identificare pattern all'interno di set di dati di grandi dimensioni. Queste caratteristiche rendono Qdrant una scelta adatta per una serie di applicazioni, tra cui reti neurali o corrispondenza basata sulla semantica, ricerca filtrata e altro ancora. Qdrant non funziona solo come database vettoriale, ma anche come motore di ricerca di somiglianze vettoriali.
Questo tutorial è rivolto ad amministratori e architetti della piattaforma cloud, ML engineer e professionisti di MLOps (DevOps) interessati a eseguire il deployment di cluster di database Qdrant su GKE.
Vantaggi
Qdrant offre i seguenti vantaggi:
- Ampia gamma di librerie per vari linguaggi di programmazione e API aperte da integrare con altri servizi.
- Scalabilità orizzontale e supporto per lo sharding e la replica che semplificano la scalabilità e l'alta disponibilità.
- Supporto di container e Kubernetes che consente il deployment e la gestione in ambienti cloud-native moderni.
- Carichi utili flessibili con filtri avanzati per personalizzare con precisione i criteri di ricerca.
- Diverse opzioni di quantizzazione e altre ottimizzazioni per ridurre i costi dell'infrastruttura e migliorare le prestazioni.
Obiettivi
In questo tutorial imparerai a:
- Pianifica ed esegui il deployment dell'infrastruttura GKE per Qdrant.
- Esegui il deployment dell'operatore StatefulHA per garantire l'alta disponibilità di Qdrant.
- Esegui il deployment e configura il cluster Qdrant.
- Carica un set di dati di esempio ed esegui una semplice query di ricerca.
- Raccogli le metriche ed esegui una dashboard.
Architettura di deployment
Questa architettura configura un cluster GKE scalabile e tollerante ai guasti per Qdrant in più zone di disponibilità, garantendo uptime e disponibilità con aggiornamenti incrementali e interruzioni minime. Include l'utilizzo dell'operatore StatefulHA per una gestione efficiente del failover. Per ulteriori informazioni, consulta Cluster regionali.
Diagramma dell'architettura
Il seguente diagramma mostra un cluster Qdrant in esecuzione su più nodi e zone in un cluster GKE:
In questa architettura, Qdrant StatefulSet
viene implementato su tre nodi in tre zone diverse.
- Puoi controllare la modalità di distribuzione dei pod nei nodi da GKE configurando le regole di affinità e i vincoli di distribuzione della topologia obbligatori dei pod nel file dei valori del grafico Helm.
- Se una zona non funziona, GKE riprogramma i pod sui nuovi nodi in base alla configurazione consigliata.
Per la persistenza dei dati, l'architettura in questo tutorial presenta le seguenti caratteristiche:
- Utilizza dischi SSD regionali (StorageClass personalizzata) per la persistenza dei dati.
regional-pd
Consigliamo i dischi SSD regionali per i database grazie alla loro bassa latenza e agli elevati IOPS. - Tutti i dati del disco vengono replicati tra le zone principali e secondarie della regione, aumentando la tolleranza ai potenziali errori delle zone.
Costi
In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il Calcolatore prezzi.
Al termine delle attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la sezione Pulizia.
Prima di iniziare
In questo tutorial utilizzerai Cloud Shell per eseguire comandi. Cloud Shell è un ambiente shell per la gestione delle risorse ospitate su Google Cloud. È preinstallato con gli strumenti a riga di comando Google Cloud CLI, kubectl, Helm e Terraform. Se non utilizzi Cloud Shell, devi installare Google Cloud CLI.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Resource Manager, Compute Engine, GKE, IAM Service Account Credentials, and Backup for GKE APIs:
gcloud services enable cloudresourcemanager.googleapis.com
compute.googleapis.com container.googleapis.com iamcredentials.googleapis.com gkebackup.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Resource Manager, Compute Engine, GKE, IAM Service Account Credentials, and Backup for GKE APIs:
gcloud services enable cloudresourcemanager.googleapis.com
compute.googleapis.com container.googleapis.com iamcredentials.googleapis.com gkebackup.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/storage.objectViewer, roles/container.admin, roles/iam.serviceAccountAdmin, roles/compute.admin, roles/gkebackup.admin, roles/monitoring.viewer
gcloud projects add-iam-policy-binding PROJECT_ID --member="user: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.
- Replace
Configura l'ambiente
Per configurare l'ambiente con Cloud Shell:
Imposta le variabili di ambiente per il progetto, la regione e un prefisso della risorsa del cluster Kubernetes:
Ai fini di questo tutorial, utilizza la regione
us-central1
per creare le risorse di deployment.export PROJECT_ID=PROJECT_ID export KUBERNETES_CLUSTER_PREFIX=qdrant export REGION=us-central1
- Sostituisci
PROJECT_ID
con il tuo ID progetto Google Cloud.
- Sostituisci
Controlla la versione di Helm:
helm version
Aggiorna la versione se è precedente alla 3.13:
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Clona il repository di codice campione da GitHub:
git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samples
Vai alla directory
qdrant
per iniziare a creare le risorse di deployment:cd kubernetes-engine-samples/databases/qdrant
Crea l'infrastruttura del cluster
Questa sezione prevede l'esecuzione di uno script Terraform per creare un cluster GKE regionale privato e ad alta disponibilità per eseguire il deployment del database Qdrant.
Puoi scegliere di eseguire il deployment di Qdrant utilizzando un cluster standard o Autopilot. Ognuno ha i suoi vantaggi e modelli di determinazione dei prezzi diversi.
Autopilot
Il seguente diagramma mostra un cluster GKE regionale Autopilot impiegato in tre zone diverse.
Per eseguire il deployment dell'infrastruttura del cluster, esegui i seguenti comandi in Cloud Shell:
export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token)
terraform -chdir=terraform/gke-autopilot init
terraform -chdir=terraform/gke-autopilot apply \
-var project_id=${PROJECT_ID} \
-var region=${REGION} \
-var cluster_prefix=${KUBERNETES_CLUSTER_PREFIX}
Le seguenti variabili vengono sostituite in fase di runtime:
GOOGLE_OAUTH_ACCESS_TOKEN
: sostituito da un token di accesso recuperato dal comandogcloud auth print-access-token
per autenticare le interazioni con varie API Google CloudPROJECT_ID
,REGION
eKUBERNETES_CLUSTER_PREFIX
sono le variabili di ambiente definite nella sezione Configurare l'ambiente e assegnate alle nuove variabili pertinenti per il cluster Autopilot che stai creando.
Quando richiesto, digita yes
.
L'output è simile al seguente:
...
Apply complete! Resources: 9 added, 0 changed, 0 destroyed.
Outputs:
kubectl_connection_command = "gcloud container clusters get-credentials qdrant-cluster --region us-central1"
Terraform crea le seguenti risorse:
- Una rete VPC personalizzata e una subnet privata per i nodi Kubernetes.
- Un router Cloud per accedere a internet tramite Network Address Translation (NAT).
- Un cluster GKE privato nella regione
us-central1
. - Un
ServiceAccount
con autorizzazioni di logging e monitoraggio per il cluster. - Configurazione di Google Cloud Managed Service per Prometheus per il monitoraggio e l'invio di avvisi per i cluster.
Standard
Il seguente diagramma mostra un cluster GKE regionale privato standard di cui è stato eseguito il deployment in tre zone diverse.
Per eseguire il deployment dell'infrastruttura del cluster, esegui i seguenti comandi in Cloud Shell:
export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token)
terraform -chdir=terraform/gke-standard init
terraform -chdir=terraform/gke-standard apply \
-var project_id=${PROJECT_ID} \
-var region=${REGION} \
-var cluster_prefix=${KUBERNETES_CLUSTER_PREFIX}
Le seguenti variabili vengono sostituite in fase di runtime:
GOOGLE_OAUTH_ACCESS_TOKEN
viene sostituito da un token di accesso recuperato dal comandogcloud auth print-access-token
per autenticare le interazioni con varie API Google Cloud.PROJECT_ID
,REGION
eKUBERNETES_CLUSTER_PREFIX
sono le variabili di ambiente definite nella sezione Configurare l'ambiente e assegnate alle nuove variabili pertinenti per il cluster standard che stai creando.
Quando richiesto, digita yes
. Potrebbero essere necessari diversi minuti prima che questi comandi vengano completati e che il cluster mostri lo stato di disponibilità.
L'output è simile al seguente:
...
Apply complete! Resources: 10 added, 0 changed, 0 destroyed.
Outputs:
kubectl_connection_command = "gcloud container clusters get-credentials qdrant-cluster --region us-central1"
Terraform crea le seguenti risorse:
- Una rete VPC personalizzata e una subnet privata per i nodi Kubernetes.
- Un router Cloud per accedere a internet tramite Network Address Translation (NAT).
- Un cluster GKE privato nella regione
us-central1
con la scalabilità automatica abilitata (da uno a due nodi per zona). - Un
ServiceAccount
con autorizzazioni di logging e monitoraggio per il cluster. - Configurazione di Google Cloud Managed Service per Prometheus per il monitoraggio e l'invio di avvisi dei cluster.
Connettiti al cluster
Configura kubectl
per recuperare le credenziali e comunicare con il nuovo cluster GKE:
gcloud container clusters get-credentials \
${KUBERNETES_CLUSTER_PREFIX}-cluster --region ${REGION}
Esegui il deployment del database Qdrant nel cluster
In questo tutorial esegui il deployment del database Qdrant (in modalità distribuita) e dell'operatore di HA stateful nel cluster GKE utilizzando il chart Helm.
Il deployment crea un cluster GKE con la seguente configurazione:
- Tre repliche dei nodi Qdrant.
- Le tolleranze, le affinità dei nodi e i vincoli di distribuzione della topologia sono configurati per garantire una distribuzione corretta tra i nodi Kubernetes. In questo modo vengono sfruttati i pool di nodi e le diverse zone di disponibilità.
- Viene eseguito il provisioning di un volume RePD con il tipo di disco SSD per l'archiviazione dei dati.
- Un operatore HA stateful viene utilizzato per gestire i processi di failover e garantire un'alta disponibilità.
- Per l'autenticazione, il database crea un secret di Kubernetes contenente la chiave API.
Per utilizzare il grafico Helm per eseguire il deployment del database Qdrant:
Attiva il componente aggiuntivo StatefulHA:
Autopilot
GKE attiva automaticamente il plug-in
StatefulHA
al momento della creazione del cluster.Standard
Esegui questo comando:
gcloud container clusters update ${KUBERNETES_CLUSTER_PREFIX}-cluster \ --project=${PROJECT_ID} \ --region=${REGION} \ --update-addons=StatefulHA=ENABLED
Il completamento di questo comando e la visualizzazione dello stato di disponibilità del cluster potrebbero richiedere 15 minuti.
Aggiungi il repository del grafico Helm del database Qdrant prima di poterlo eseguire sul tuo cluster GKE:
helm repo add qdrant https://qdrant.github.io/qdrant-helm
Crea lo spazio dei nomi
qdrant
per il database:kubectl create ns qdrant
Applica il manifest per creare un disco SSD permanente a livello di regione
StorageClass
:kubectl apply -n qdrant -f manifests/01-regional-pd/regional-pd.yaml
Il file manifest
regional-pd.yaml
descrive il disco SSD permanenteStorageClass
:Esegui il deployment di un ConfigMap Kubernetes con una configurazione di sidecar
metrics
e un cluster Qdrant utilizzando Helm:kubectl apply -n qdrant -f manifests/03-prometheus-metrics/metrics-cm.yaml helm install qdrant-database qdrant/qdrant -n qdrant \ -f manifests/02-values-file/values.yaml
Il file manifest
metrics-cm.yaml
descrive il sidecarmetrics
ConfigMap
:Il manifest
values.yaml
descrive la configurazione del cluster Qdrant :Questa configurazione attiva la modalità cluster, consentendoti di configurare un cluster Qdrant distribuito e altamente disponibile.
Aggiungi un'etichetta allo statefulset Qdrant:
kubectl label statefulset qdrant-database examples.ai.gke.io/source=qdrant-guide -n qdrant
Esegui il deployment di un bilanciatore del carico interno per accedere al database Qdrant in esecuzione nella stessa VPC del tuo cluster GKE:
kubectl apply -n qdrant -f manifests/02-values-file/ilb.yaml
Il manifest
ilb.yaml
descrive il servizioLoadBalancer
:Controlla lo stato del deployment:
helm ls -n qdrant
L'output è simile al seguente, se il database
qdrant
viene eseguito correttamente:NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION qdrant-database qdrant 1 2024-02-06 20:21:15.737307567 +0000 UTC deployed qdrant-0.7.6 v1.7.4
Attendi che GKE avvii i carichi di lavoro richiesti:
kubectl wait pods -l app.kubernetes.io/instance=qdrant-database --for condition=Ready --timeout=300s -n qdrant
Il completamento di questo comando potrebbe richiedere alcuni minuti.
Una volta che GKE avvia i carichi di lavoro, verifica che GKE abbia creato i carichi di lavoro Qdrant:
kubectl get pod,svc,statefulset,pdb,secret -n qdrant
Avvia la risorsa
HighAvailabilityApplication
(HAA) per Qdrant:kubectl apply -n qdrant -f manifests/01-regional-pd/ha-app.yaml
Il manifest
ha-app.yaml
descrive la risorsaHighAvailabilityApplication
:Per il cluster Qdrant vengono create le seguenti risorse GKE:
- Il quadrante
StatefulSet
che controlla tre repliche di pod. A PodDisruptionBudget
, garantendo un massimo di una replica non disponibile.- Il servizio
qdrant-database
, che espone la porta Qdrant per le connessioni in entrata e la replica tra i nodi. - Il servizio
qdrant-database-headless
, che fornisce l'elenco dei pod Qdrant in esecuzione. - Il secret
qdrant-database-apikey
, che facilita la connessione sicura al database. - Pod dell'operatore HA stateful e risorsa
HighlyAvailableApplication
che monitora attivamente l'applicazione Qdrant. La risorsaHighlyAvailableApplication
definisce le regole di failover da applicare a Qdrant.
- Il quadrante
Per verificare se le regole di failover sono applicate, descrivi la risorsa e conferma
Status: Message: Application is protected
.kubectl describe highavailabilityapplication qdrant-database -n qdrant
L'output è simile al seguente:
Status: Conditions: Last Transition Time: 2023-11-30T09:54:52Z Message: Application is protected Observed Generation: 1 Reason: ApplicationProtected Status: True Type: Protected
Carica il set di dati ed esegui query di ricerca con Jupyter Notebook
Qdrant organizza vettori e payload in raccolte. L'embedding vettoriale è una tecnica che rappresenta parole o entità come vettori numerici mantenendo al contempo le loro relazioni semantiche. Questo è importante per le ricerche di somiglianza perché consente di trovare somiglianze in base al significato anziché a corrispondenze esatte, rendendo attività come i sistemi di ricerca e consigli più efficaci e sfumati.
Questa sezione spiega come caricare i vettori in una nuova raccolta di Qdrant ed eseguire query di ricerca.
In questo esempio, utilizzi un set di dati di un file CSV contenente un elenco di libri di generi diversi. Qdrant fungerà da motore di ricerca e il pod del blocco note Jupyter che crei fungerà da client che esegue query sul database Qdrant.
Crea i ConfigMap
books-dataset
edemo-app
ed esegui il deployment del notebook Jupyter:kubectl create -n qdrant configmap books-dataset --from-file=manifests/04-notebook/dataset.csv kubectl create -n qdrant configmap notebook --from-file=manifests/04-notebook/vector-database.ipynb kubectl apply -n qdrant -f manifests/04-notebook/jupyter.yaml
- Il secret denominato
qdrant-apikey
creato in precedenza viene montato sull'elemento client Pod come variabile di ambiente denominataAPIKEY
. - Il ConfigMap
books-dataset
contiene un filecsv
con i dati dei libri per la raccolta Qdrant - Il ConfigMap
notebook
contiene il blocco note Jupyter per creare la raccolta Qdrant dabooks-dataset
.
- Il secret denominato
Attendi che GKE avvii il pod Jupyter:
kubectl wait pods -l app=jupyter-notebook --for condition=Ready --timeout=300s -n qdrant
Apri questo URL e fai clic sul file database-vettore.ipynb. Premi Esegui -> Esegui tutte le celle. Jupyter eseguirà tutto il codice ed eseguirà una query di ricerca.
Questa query esegue una ricerca semantica nella tua raccolta
my_books
in Qdrant, recuperando un massimo di due risultati con il punteggio di corrispondenza più alto pertinente al testo della query.Stampa ogni risultato separato da una riga di trattini, nel seguente formato :
Title
: titolo del libroAuthor
: autore del libroDescription
: come memorizzato nel campo dei metadatidescription
del documentoPublished
: data di pubblicazione del libroScore
: il punteggio di pertinenza di Qdrant
L'output è simile al seguente:
Title: Romeo and Juliet Author: William Shakespeare, Paul Werstine (Editor), Barbara A. Mowat (Editor), Paavo Emil Cajander (Translator) Description: In Romeo and Juliet, Shakespeare creates a violent world, in which two young people fall in love. It is not simply that their families disapprove; the Montagues and the Capulets are engaged in a blood feud.In this death-filled setting, the movement from love at first sight to the lovers' final union in death seems almost inevitable. And yet, this play set in an extraordinary world has become the quintessential story of young love. In part because of its exquisite language, it is easy to respond as if it were about all young lovers. Published: 01/01/04 Score: 0.8935013 ----- Title: The Unbearable Lightness of Being Author: Milan Kundera, Michael Henry Heim (Translator) Description: In The Unbearable Lightness of Being, Milan Kundera tells the story of a young woman in love with a man torn between his love for her and his incorrigible womanizing and one of his mistresses and her humbly faithful lover. This magnificent novel juxtaposes geographically distant places, brilliant and playful reflections, and a variety of styles, to take its place as perhaps the major achievement of one of the world's truly great writers. Published: 10/27/09 Score: 0.8931863 -----
Visualizzare le metriche Prometheus per il cluster
Il cluster GKE è configurato con Google Cloud Managed Service per Prometheus, che consente la raccolta delle metriche nel formato Prometheus. Questo servizio fornisce una soluzione completamente gestita per il monitoraggio e gli avvisi, consentendo la raccolta, lo stoccaggio e l'analisi delle metriche del cluster e delle sue applicazioni.
Il seguente diagramma mostra come Prometheus raccoglie le metriche per il cluster:
Il cluster privato GKE nel diagramma contiene i seguenti componenti:
- Pod Qdrant che espongono le metriche sul percorso
/
e sulla porta80
. Queste metriche vengono fornite dal contenitore secondario denominatometrics
. - Raccoglitori basati su Prometheus che elaborano le metriche dei pod Qdrant.
- Una risorsa PodMonitoring che invia le metriche a Cloud Monitoring.
Per esportare e visualizzare le metriche:
Crea la risorsa
PodMonitoring
per eseguire lo scraping delle metriche perlabelSelector
:kubectl apply -n qdrant -f manifests/03-prometheus-metrics/pod-monitoring.yaml
Il manifest
pod-monitoring.yaml
descrive la risorsaPodMonitoring
:Crea una dashboard di Cloud Monitoring con le configurazioni definite in
dashboard.json
:gcloud --project "${PROJECT_ID}" monitoring dashboards create --config-from-file monitoring/dashboard.json
Una volta eseguito correttamente il comando, vai alle dashboard di Cloud Monitoring:
Dall'elenco delle dashboard, apri la dashboard
Qdrant Overview
. Potrebbero essere necessari 1-2 minuti per raccogliere e visualizzare le metriche.La dashboard mostra un conteggio delle metriche chiave:
- Raccolte
- Vettori incorporati
- Operazioni in attesa
- Nodi in esecuzione
Esegui il backup della configurazione del cluster
La funzionalità Backup per GKE consente di pianificare backup regolari dell'intera configurazione del cluster GKE, inclusi i carichi di lavoro di cui è stato eseguito il deployment e i relativi dati.
In questo tutorial, configuri un piano di backup per il tuo cluster GKE in modo da eseguire ogni giorno alle 03:00 i backup di tutti i carichi di lavoro, inclusi i secret e i volumi. Per garantire una gestione efficiente dello spazio di archiviazione, i backup precedenti a tre giorni vengono eliminati automaticamente.
Per configurare i piani di backup:
Abilita la funzionalità Backup per GKE per il cluster:
gcloud container clusters update ${KUBERNETES_CLUSTER_PREFIX}-cluster \ --project=${PROJECT_ID} \ --region=${REGION} \ --update-addons=BackupRestore=ENABLED
Crea un piano di backup con una pianificazione giornaliera per tutti gli spazi dei nomi all'interno del cluster:
gcloud beta container backup-restore backup-plans create ${KUBERNETES_CLUSTER_PREFIX}-cluster-backup \ --project=${PROJECT_ID} \ --location=${REGION} \ --cluster="projects/${PROJECT_ID}/locations/${REGION}/clusters/${KUBERNETES_CLUSTER_PREFIX}-cluster" \ --all-namespaces \ --include-secrets \ --include-volume-data \ --cron-schedule="0 3 * * *" \ --backup-retain-days=3
Il comando utilizza le variabili di ambiente pertinenti in fase di esecuzione.
Il formato del nome del cluster è relativo al progetto e alla regione come segue:
projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
Quando richiesto, digita
y.
L'output è simile al seguente:Create request issued for: [qdrant-cluster-backup] Waiting for operation [projects/PROJECT_ID/locations/us-central1/operations/operation-1706528750815-610142ffdc9ac-71be4a05-f61c99fc] to complete...⠹
Il completamento dell'operazione potrebbe richiedere alcuni minuti. Al termine dell'esecuzione, l'output è simile al seguente:
Created backup plan [qdrant-cluster-backup].
Puoi vedere il piano di backup
qdrant-cluster-backup
appena creato elencato nella console di Backup per GKE.
Se vuoi ripristinare le configurazioni di backup salvate, consulta Ripristinare un backup.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
Il modo più semplice per evitare la fatturazione è eliminare il progetto che hai creato per questo tutorial.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Se hai eliminato il progetto, la pulizia è completata. Se non hai eliminato il progetto, procedi con l'eliminazione delle singole risorse.
Elimina singole risorse
Imposta le variabili di ambiente.
export PROJECT_ID=${PROJECT_ID} export KUBERNETES_CLUSTER_PREFIX=qdrant export REGION=us-central1
Esegui il comando
terraform destroy
:export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token) terraform -chdir=terraform/FOLDER destroy \ -var project_id=${PROJECT_ID} \ -var region=${REGION} \ -var cluster_prefix=${KUBERNETES_CLUSTER_PREFIX}
Sostituisci
FOLDER
congke-autopilot
ogke-standard
, a seconda del tipo di cluster GKE che hai creato.Quando richiesto, digita
yes
.Trova tutti i dischi scollegati:
export disk_list=$(gcloud compute disks list --filter="-users:* AND labels.name=${KUBERNETES_CLUSTER_PREFIX}-cluster" --format "value[separator=|](name,region)")
Elimina i dischi:
for i in $disk_list; do disk_name=$(echo $i| cut -d'|' -f1) disk_region=$(echo $i| cut -d'|' -f2|sed 's|.*/||') echo "Deleting $disk_name" gcloud compute disks delete $disk_name --region $disk_region --quiet done
Elimina il repository GitHub:
rm -r ~/kubernetes-engine-samples/
Passaggi successivi
- Esplora il marketplace Qdrant su GKE.
- Esplora il software open source Qdrant.
- Prova l'operatore Qdrant che offre gestione delle chiavi API, supporto TLS con gestione dei certificati e pianificazione dei backup.
- Scopri le best practice per il deployment dei database su GKE.
- Scopri le soluzioni per l'esecuzione di carichi di lavoro con utilizzo intensivo di dati con GKE.