Vai al contenuto principale
BlogContenitori (Kubernetes, Docker)Gestire applicazioni Kubernetes senza server con Knative

Gestire le applicazioni Kubernetes senza server con Knative

Gestire le applicazioni Kubernetes senza server con Knative immagine del blog

L'architettura serverless, in poche parole, elimina la necessità per gli sviluppatori di gestire i server. I server continuano a funzionare in background, ma l'onere della manutenzione e del ridimensionamento dell'infrastruttura viene spostato al cloud provider. Gli sviluppatori sono in grado di razionalizzare il loro codice in modo significativo fino a funzioni specifiche e di solito sfruttano un modello di costo "on-demand" in cui pagano le risorse solo quando una funzione viene eseguita.

Una funzione viene eseguita quando API Gli endpoint attivano eventi, il che consente alle applicazioni con stati imprevedibili o in rapida evoluzione di scalare orizzontalmente con funzioni astratte dall'applicazione principale. In pratica, una funzione potrebbe essere attivata quando un acquirente seleziona un prodotto su un sito di e-commerce, per verificare in un database se il prodotto è disponibile e per ottenere le informazioni più aggiornate sui prezzi.

Knative è un potente set di strumenti funzionali costruito sopra Kubernetes per la gestione di applicazioni serverless. Knative consente al cluster Kubernetes di scalare i pod fino a zero, rendendo comunque disponibili le risorse in modo che i pod possano scalare quando necessario.

Knative supporta eventi e trigger che possono essere personalizzati per controllare la risposta dell'applicazione. È uno strumento portatile e neutrale rispetto ai fornitori, quindi si può utilizzare con il servizio Kubernetes gestito preferito (come il nostro Linode Kubernetes Engine) o installare su un cluster locale. Insieme, Kubernetes e questa piattaforma di funzioni installabili ottimizzano i vantaggi della gestione dello stato e dell'autoguarigione dell'esecuzione di un'applicazione su Kubernetes.

Knative fornisce:

  • Scalatura automatica: Knative offre il ridimensionamento automatico dei pod in base al traffico e alla domanda, compreso il ridimensionamento a zero. Questo migliora l'utilizzo delle risorse e riduce i costi.
  • Elaborazione guidata dagli eventi: Knative consente ai carichi di lavoro serverless di rispondere a eventi e trigger.
  • Portabilità: Knative è stato progettato per funzionare su diversi cloud provider e ambienti. Ciò consente agli sviluppatori di distribuire applicazioni serverless in ambienti diversi senza dover modificare il codice.
  • Estensibilità: Knative fornisce un insieme di blocchi di costruzione che possono essere personalizzati per soddisfare i requisiti di applicazioni specifiche.
  • Scalabilità aziendale: Knative è apprezzato da aziende come Puppet e Outfit7.

Come funziona

Le funzionalità di Knative sono suddivise in Knative Eventing e Knative Serving.

  • Evento: Collezione di API che abilitano i sink, ovvero l'instradamento degli eventi dai produttori di eventi ai consumatori di eventi, tramite richieste HTTP POST.
  • Servire: Definire un insieme di oggetti come Kubernetes Custom Resources Definitions (CRD) o creare un'estensione del sistema Kubernetes. API. Questo determina il modo in cui un carico di lavoro serverless interagisce con il cluster Kubernetes con le seguenti risorse.
    • Percorsi: Mappatura degli endpoint di rete agli endpoint delle revisioni e gestione del traffico. 
    • Configurazioni: Mantiene lo stato desiderato come livello separato dal codice.
    • Revisioni: Un'istantanea del codice e della configurazione per ogni cambiamento e modifica apportati.
    • Servizi: Gestione del carico di lavoro che controlla la creazione di oggetti e garantisce che l'applicazione abbia continuamente un percorso, una configurazione e una revisione all'ultima revisione o a una revisione specifica. Knative utilizza il servizio gateway Istio per impostazione predefinita.
Diagramma che mostra i livelli di un cluster Kubernetes. Istio è la rete di servizi che gestisce l'instradamento delle query e il bilanciamento del carico. Knative si trova al centro con le sue funzionalità di Eventing e Serving, mentre il cluster Kubernetes è alla base.
Knative utilizza Kubernetes come orchestratore e Istio gestisce il routing delle query e il bilanciamento del carico.

È possibile installare Knative nel cluster utilizzando YAML o l'Operatore Knative per Kubernetes. Esistono anche grafici di Knative Helm presentati dai membri della comunità Kubernetes. Knative dispone di un ambiente di avvio rapido, ma è consigliato solo a scopo di test.

Come iniziare con Akamai Cloud

Knative è un eccellente complemento all'autoscaler integrato di LKE, che consente di controllare facilmente i nodi minimi e massimi all'interno del pool di nodi di un cluster. L'uso congiunto di Knative e dell'autoscaler consente di ottenere una gestione finemente regolata sia a livello di pod che di infrastruttura.

E per aiutarvi a iniziare, abbiamo un nuovo corso on-demand per questo! Abbiamo collaborato con Justin Mitchel di Coding for Entrepreneurs per il nostro nuovo corso on demand Try Knative, disponibile dal 28 febbraio 2023. Questa serie di video include la creazione di un cluster Kubernetes utilizzando Terraform, la configurazione di un servizio Knative e il deploy di un'applicazione containerizzata.


Commenti (1)

  1. Author Photo

    It was helpful

Lascia una risposta

Il vostro indirizzo e-mail non sarà pubblicato. I campi obbligatori sono contrassegnati da *