Glossario

Kubernetes

Scopri come Kubernetes semplifica i flussi di lavoro dell'AI, consentendo una scalabilità senza soluzione di continuità, l'autoguarigione e la distribuzione efficiente dei modelli per il cloud-native computing.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

Kubernetes è una piattaforma di orchestrazione di container open-source progettata per automatizzare la distribuzione, la scalabilità e la gestione di applicazioni containerizzate. Originariamente sviluppato da Google, Kubernetes è ora gestito dalla Cloud Native Computing Foundation (CNCF) ed è diventato lo standard del settore per la gestione dei moderni carichi di lavoro cloud-native.

Caratteristiche principali di Kubernetes

Kubernetes offre un'ampia gamma di funzionalità che semplificano la gestione di applicazioni complesse in ambienti distribuiti:

  • Orchestrazione dei container: Kubernetes pianifica e gestisce automaticamente i container in un cluster di macchine, garantendo un utilizzo ottimale delle risorse.
  • Scalabilità: Kubernetes supporta il ridimensionamento manuale e automatico delle applicazioni in base a CPU, alla memoria o a metriche personalizzate.
  • Auto-guarigione: Monitora lo stato di salute delle applicazioni e riavvia o sostituisce automaticamente i container guasti per mantenere la stabilità del sistema.
  • Bilanciamento del carico: Kubernetes distribuisce il traffico di rete su più container per garantire un'elevata disponibilità e prestazioni affidabili.
  • Gestione dello storage: Supporta diversi backend di archiviazione, come l'archiviazione locale, l'archiviazione basata su cloud e i file system di rete, per soddisfare le esigenze delle applicazioni.

Per un'introduzione alla containerizzazione, consulta la pagina del glossario di Docker.

Kubernetes in AI e Machine Learning

Kubernetes svolge un ruolo fondamentale nei flussi di lavoro di AI e machine learning, dove la gestione di attività distribuite e ad alta intensità di risorse è essenziale. Semplifica la distribuzione di sistemi complessi come le pipeline di apprendimento automatico, garantendo scalabilità e affidabilità.

Esempio 1: Formazione di un modello di apprendimento automatico

Kubernetes può essere utilizzato per gestire la formazione distribuita di modelli di apprendimento automatico su più nodi abilitati a GPU. Ad esempio, un team che addestra un modello di deep learning utilizzando PyTorch può distribuire i lavori di formazione come pod Kubernetes. Questo garantisce un'allocazione efficiente delle risorse e permette di scalare i processi di formazione in modo dinamico in base ai requisiti del carico di lavoro. Scopri di più sulla formazione distribuita e su come Kubernetes la facilita.

Esempio 2: Distribuzione del modello

Kubernetes è molto utilizzato per distribuire modelli di apprendimento automatico in produzione. Ad esempio, un modello di rilevamento di oggetti addestrato con Ultralytics YOLO può essere containerizzato e distribuito su Kubernetes. Questa configurazione garantisce un'elevata disponibilità grazie a funzioni come gli aggiornamenti rolling e la replica, che riducono al minimo i tempi di inattività e mantengono l'affidabilità del servizio.

Kubernetes vs. tecnologie correlate

Mentre Kubernetes eccelle nell'orchestrazione dei container, tecnologie come Docker si concentrano sulla containerizzazione stessa. Docker fornisce le basi per la creazione e l'esecuzione dei container, mentre Kubernetes orchestra e gestisce questi container su scala. Per una comprensione più approfondita, esplora la differenza tra containerizzazione e orchestrazione.

Un altro concetto correlato è quello di serverless computing, che astrae completamente dalla gestione dell'infrastruttura. A differenza di Kubernetes, le piattaforme serverless scalano automaticamente le risorse in base a trigger guidati da eventi, senza l'intervento dell'utente. Scopri di più sul serverless computing.

Applicazioni del mondo reale

Kubernetes viene utilizzato in diversi settori per migliorare l'efficienza dei flussi di lavoro di AI e machine learning:

  • Sanità: Kubernetes consente la distribuzione di modelli di analisi delle immagini mediche, come quelli descritti in Analisi delle immagini mediche, garantendo scalabilità e affidabilità nell'elaborazione di grandi set di dati.
  • Veicoli autonomi: Kubernetes supporta la distribuzione scalabile di applicazioni in pipeline di veicoli autonomi, come quelle descritte in AI per auto a guida autonoma.
  • Vendita al dettaglio: Nel settore della vendita al dettaglio, Kubernetes alimenta modelli di rilevamento degli oggetti in tempo reale, ad esempio Ultralytics YOLO per ottimizzare la gestione dell'inventario e migliorare l'esperienza dei clienti.

Come iniziare con Kubernetes

Per chi è interessato a sfruttare Kubernetes per i progetti di intelligenza artificiale, strumenti come Ultralytics HUB si integrano bene con Kubernetes per una formazione e una distribuzione dei modelli senza problemi. Inoltre, piattaforme come Google Kubernetes Engine (GKE) e Amazon Elastic Kubernetes Service (EKS) semplificano la gestione dei cluster Kubernetes.

Per saperne di più sulla distribuzione dei modelli di intelligenza artificiale su scala, esplora la guida alle opzioni di distribuzione dei modelli.

Kubernetes consente alle aziende di gestire e scalare efficacemente i carichi di lavoro dell'AI, rendendolo una pietra miliare del moderno cloud-native computing. La sua robusta serie di funzionalità e l'ampia adozione garantiscono che rimarrà uno strumento vitale per la comunità dell'AI e dell'apprendimento automatico.

Leggi tutto