Kubernetes

Deis Labs (dal team di Deis, società specializzata in Kubernetes e open source acquisita da Microsoft circa tre anni fa) ha presentato il progetto Krustlet, per il deployment di workload WebAssembly su Kubernetes.

Il team di Deis Labs ha rilasciato la prima release, v0.1.0, di quello che prende il nome dalla contrazione di “Kubernetes-rust-kubelet”, Krustlet, che gli sviluppatori descrivono, in sintesi come un’implementazione in Rust del Kubelet di Kubernetes focalizzata su WebAssembly.

Rust è un linguaggio di programmazione incentrato sulle prestazioni, sull’affidabilità e sulla sicurezza, utilizzato per lo sviluppo di soluzioni embedded, WebAssembly, di tool a riga di comando e tanto altro.

A spiegare perché, per questo progetto, sia stato utilizzato Rust, è lo stesso team di Deis Labs: perché, secondo gli sviluppatori, questo linguaggio ha un supporto tra i migliori per la compilazione WebAssembly e perché volevano dimostrare che suoi punti di forza potevano essere applicati all'ecosistema Kubernetes.

Il kubelet è un agent di Kubernetes, il “node agent” primario, eseguito su ogni nodo, che si assicura che i container siano in funzione in un Pod.

WebAssembly, invece, è uno standard aperto per un nuovo formato binario, che per progettazione è memory-safe, portatile e funzionante con prestazioni quasi native.

Il progetto Krustlet è stato sviluppato da Deis Labs per due scopi: innanzitutto, il team ha l’intenzione di rendere semplice il deployment di workload WebAssembly su Kubernetes.

Poi, vuole dimostrare alla community come costruire pezzi architetturali di Kubernetes in linguaggi di programmazione alternativi. Infatti, la maggior parte dei programmi scritti per Kubernetes sono realizzati in Go, linguaggio con cui lo stesso sistema di orchestrazione open source è implementato; invece, Krustlet è scritto per l’appunto in Rust.

I container Linux, spiega il team di Deis Labs, sono progettati per fornire un ambiente sandbox di livello OS e si affidano al kernel per fornire quell'ambiente sandboxed: di conseguenza, il codice compilato per i chipset Intel non può essere eseguito su hardware Arm.

D'altra parte, WebAssembly fornisce un formato binario portatile che può essere eseguito ovunque indipendentemente dall'hardware sottostante. Tuttavia, prosegue Deis Labs, è solo un formato binario e non offre la stessa flessibilità fornita da un ambiente in sandbox a livello di sistema operativo.

Il punto di vista di Deis Labs è che le due tecnologie siano complementari. Ognuna di esse fornisce vantaggi e svantaggi unici: abbinate, gli sviluppatori possono compilare il loro codice ed eseguirlo in un contenitore o compilarlo direttamente in WebAssembly, a seconda delle esigenze e dei requisiti della propria applicazione.

È qui che entra in gioco Krustlet, che è progettato per essere eseguito come un kubelet di Kubernetes.

La prima versione di Krustlet, la v0.1.0, consente di provare e sperimentare con questa tecnologia, ed è interamente open source. Questa prima iterazione aveva l’obiettivo di dimostrare che era possibile eseguire WebAssembly su Kubernetes, ma il progetto non è completo, è anzi solo in una fase definita come “altamente sperimentale” e non pronta per la produzione.

Il team ha però dichiarato di voler espandere sia le funzionalità che la documentazione di Krustlet, nei prossimi mesi.

Chi è interessato a saperne di più o a “sporcarsi le mani” con Krustlet, può farlo partendo dal sito Deis Labs o direttamente dal repository di GitHub.

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato sulle novità tecnologiche iscriviti alla newsletter gratuita.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome