KWOK, Kubernetes WithOut Kubelet, un toolkit per testare deployment Kubernetes su infrastrutture… Finte!
Presentato il primo di marzo sul blog ufficiale di Kubernetes, KWOK è un toolkit in grado di simulare migliaia di nodi Kubernetes senza che in realtà ne esista alcuno.
L’acronimo di questo tool sta per Kubernetes WithOut Kubelet ed il progetto è formato da 2 componenti essenziali:
- kwok: la componente che simula i finti nodi, pod e le altre risorse di Kubernetes.
- kwokctl: la command line interface che permette di gestire la creazione dei cluster su nodi simulati da kwok.
Ma partiamo dall’inizio. Quale è il ruolo di kubelet
e perché è determinante in Kubernetes? kubelet è definito un node agent , ossia una componente responsabile della gestione della distribuzione dei pod ai nodi Kubernetes. Riceve i comandi dal server API e indica alla container runtime di sistema di avviare o arrestare i container secondo necessità.
Quindi sì, senza kubelet
non potrebbe esistere Kubernetes, ma ovviamente questa componente ha un suo peso computazionale, ed è qui che entra in gioco KWOK.
Quello che fa KWOK è simulare l’esistenza di nodi e fare in modo che questi rispondano come se fossero reali, il tutto utilizzando un insieme di risorse estremamente minimale, che quindi lo rendono utilizzabile in qualsiasi contesto di test.
Quello che fa KWOK è riassunto in questa immagine che ne illustra il funzionamento:
Per i curiosi, la definizione di un nodo fake generato da KWOK è questa:
apiVersion: v1
kind: Node
metadata:
annotations:
kwok.x-k8s.io/node: fake
node.alpha.kubernetes.io/ttl: "0"
labels:
beta.kubernetes.io/arch: amd64
beta.kubernetes.io/os: linux
kubernetes.io/arch: amd64
kubernetes.io/hostname: fake-node
kubernetes.io/os: linux
kubernetes.io/role: agent
node-role.kubernetes.io/agent: ""
type: kwok-controller
name: fake-node
spec:
taints:
- effect: NoSchedule
key: kwok-controller/provider
value: fake
I vantaggi dell’utilizzo di KWOK sono evidenziati nel blog post:
- Velocità: è possibile creare ed eliminare cluster e nodi quasi istantaneamente, senza attendere l’avvio o il provisioning (cosa che invece è vincolante quando si usa kubelet).
- Compatibilità: KWOK funziona con qualsiasi strumento o client conforme alle API di Kubernetes, quindi kubectl, helm, e via dicendo.
- Portabilità: KWOK non ha requisiti hardware o software specifici e quindi è possibile eseguirlo utilizzando immagini predefinite, una volta installato Docker o Nerdctl (come, non avete mai sentito parlare di Nerdctl?). In ogni caso i binari sono disponibili per tutte le piattaforme, pronti per essere scaricati.
- Flessibilità: è possibile configurare diversi tipi di nodi, label, taints, capacità, condizioni e simulare svariati comportamenti dei pod in modo da testare diversi scenari e casi limite.
- Prestazioni: è possibile simulare migliaia di nodi su un singolo laptop senza che vi sia un consumo significativo di CPU o risorse di memoria.
Quindi se state imparando Kubernetes, se siete sviluppatori e dovete testare i vostri workload simulando ambienti composti da migliaia di nodi, bene KWOK potrebbe fare al caso vostro!
Raoul Scarazzini
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.