Come eseguire il tuo cluster Kubernetes con MicroK8s

0
296

MicroK8s è una distribuzione Kubernetes leggera a pacchetto singolo sviluppata da Canonical, meglio conosciuta per il sistema operativo Ubuntu. MicroK8s segue le versioni upstream di Kubernetes e si concentra sulla fornitura di un'esperienza di installazione e gestione senza sforzo. Ecco come iniziare a eseguire il tuo cluster.

Installazione

MicroK8s è disponibile su Linux, Windows e macOS. Un programma di installazione grafico di Windows è offerto sul sito Web del progetto. Gli utenti macOS dovrebbero usare Brew mentre gli utenti Linux sono serviti dagli snap.

Segui i passaggi di installazione di Snap separati se non hai snapd sul tuo sistema. Quindi usa il comando snap install per aggiungere MicroK8s:

sudo snap install microk8s –classic

< /p>

Questo installa l'ultima versione di MicroK8s. Puoi selezionare una versione specifica usando il flag –channel:

sudo snap install microk8s –classic –channel=1.19/stable

Questo ti darà una versione di MicroK8s basata su Kubernetes v1.19.

Annuncio

L'installazione può richiedere del tempo per il completamento dell'avvio dei servizi Kubernetes. L'esecuzione dello stato di microk8s –wait-ready ti consente di controllare i progressi in modo da sapere quando MicroK8s è pronto per l'uso.

Interagire con il tuo cluster

MicroK8s raggruppa la propria versione dello strumento da riga di comando Kubectl. Usa microk8s kubectl per interagire con il tuo cluster, aggiungendo un normale comando kubectl:

sudo microk8s kubectl get all –all-namespaces

Questo comando mostra tutte le risorse nel tuo cluster.

< img src="http://www.cloudsavvyit.com/pagespeed_static/1.JiBnMqyl6S.gif" />

Poi crea un manifest di base da distribuire:

apiVersion: v1 tipo: Pod metadata: nome: my-pod spec: container: – nome: nginx immagine: nginx: ultime porte: – nome: http containerPort: 80 protocollo: TCP

Applica il manifest al tuo cluster:

sudo microk8s kubectl apply -f ./manifest.yaml

MicroK8s creerà un nuovo Pod che esegue il server web NGINX. Verrà visualizzato quando rieseguirai microk8s kubectl get all.

< /p>

MicroK8s è compatibile con tutti i comandi Kubectl. Se vuoi eliminare il prefisso microk8s, puoi usare un “real” binario kubectl invece:

sudo microk8s kubectl config view –raw > $HOME/.kube/config

Questo esporta le informazioni di connessione MicroK8s nel tuo file di configurazione Kubernetes, consentendo ai semplici comandi kubectl di raggiungere il tuo cluster.

La maggior parte dei comandi MicroK8s richiede l'accesso come superutente. Per un uso a lungo termine, aggiungi il tuo account utente al gruppo microk8s in modo da non dover usare sudo ogni volta:

sudo usermod -aG microk8s $USER

Accesso alle immagini Docker

I MicroK8 non possono accedere automaticamente alle immagini Docker locali. Se vuoi distribuire un'immagine che hai appena creato, importala manualmente nel registro MicroK8s esportandola come archivio tar.

docker save my-image:latest > my-image.tar microk8s ctr image import my-image.tar Advertisement

Ora i tuoi Pod possono fare riferimento con successo all'immagine. Puoi elencare tutte le immagini conosciute nel registro MicroK8s con il comando microk8s ctr images ls.

Oltre al semplice utilizzo sul tuo computer locale, dovresti impostare un registro di immagini Docker dedicato per contenere le tue immagini. Invia le immagini lì e concedi l'accesso pull a MicroK8 in modo che possa recuperarle dal tuo spazio di archiviazione. I passaggi da seguire dipendono dalla configurazione del registro.

Abilitazione del dashboard di Kubernetes

Il dashboard web di Kubernetes è in bundle con MicroK8s ma è disabilitato per impostazione predefinita. Puoi attivarlo abilitando il suo componente aggiuntivo, quindi navigando all'indirizzo IP del servizio dashboard.

microk8s abilita dashboard

L'avvio del servizio potrebbe richiedere alcuni istanti. Esegui microk8s kubectl get services –namespace kube-system e attendi che venga visualizzato il servizio kubernetes-dashboard. Annota il suo IP CLUSTER e visita il suo indirizzo nel tuo browser. Dovrebbe apparire la dashboard di Kubernetes, che ti consente di interagire con le tue risorse utilizzando un'interfaccia grafica.

Uso di più componenti aggiuntivi

MicroK8s viene fornito con molti altri componenti aggiuntivi opzionali per casi d'uso comuni. L'addon dns aggiunge il supporto per la distribuzione DNS, l'archiviazione fornisce una classe di archiviazione predefinita basata sulle directory host e ingress offre un controller di ingresso che consente di creare risorse di routing Ingress.

Annuncio

L'addon del registro è un servizio speciale che distribuisce un registro Docker pronto per l'uso su localhost: 32000. L'utilizzo del registro fornisce uno spazio di archiviazione privato in cui è possibile eseguire il push delle immagini, prima di utilizzarle nei pod Kubernetes. Allo stesso modo, l'addon istio avvia una mesh Istio per fornire funzioni di rilevamento dei servizi.

Una descrizione esauriente di questi addon è fornita nella documentazione di MicroK8s. Puoi visualizzare tutti i componenti aggiuntivi disponibili nella tua installazione eseguendo microk8s enable senza alcun argomento. Per impostazione predefinita è attiva solo la funzionalità minima di Kubernetes poiché MicroK8s si concentra sulla fornitura di un'esperienza semplificata.

Gestione del cluster

Tutte le funzioni di gestione del cluster sono fornite dal comando microk8s. Lo stato di esecuzione di microk8s mostra una panoramica del tuo cluster, incluso se è in esecuzione e l'elenco di componenti aggiuntivi attivi.

Per spegnere il tuo cluster, esegui microk8s stop. Questo fermerà tutti i servizi, portando tutto offline. Riavvia il cluster con il comando di avvio microk8s. Potrebbero essere necessari alcuni istanti prima che tutti i tuoi servizi vengano eseguiti.

Puoi visualizzare i dettagli della connessione del cluster eseguendo microk8s config. Questo emette un file YAML compatibile con Kubectl, pronto per l'uso con altri strumenti.

L'esecuzione di microk8s reset ripristinerà il cluster al suo stato iniziale post-installazione. Questa è un'operazione distruttiva che richiede tempo e che distruggerà tutte le tue risorse. Facilita la sperimentazione permettendoti di smontare tutto, senza rimuovere lo snap MicroK8s. I volumi di archiviazione Kubernetes verranno mantenuti per impostazione predefinita; puoi eliminarli anche aggiungendo il flag –destroy-storage.

Cluster multi-nodo

Anche se MicroK8 è iniziato come un singolo nodo progetto, ora puoi aggiungere nodi secondari al tuo cluster. I nodi aggiuntivi offrono ridondanza e una maggiore capacità del carico di lavoro. Ogni nodo richiede il proprio ambiente completamente isolato – una macchina fisica, una macchina virtuale o un contenitore separati. Non è possibile eseguire due istanze worker MicroK8 nello stesso ambiente.

Annuncio

Innanzitutto, esegui microk8s add-node sul tuo nodo originale. Questo diventerà il master di controllo che esegue il piano di controllo di Kubernetes.

add-node microk8s

< /p>

Il comando crea una registrazione provvisoria per il nuovo nodo. Emetterà un comando join microk8s che unirà il nodo al piano di controllo. Il processo di adesione richiederà alcuni secondi per essere completato. Il nodo deve essere in grado di raggiungere il tuo master tramite l'indirizzo di rete visualizzato.

Una volta aggiunto il nodo, sarà idoneo a ospitare i tuoi pod. Puoi visualizzare tutti i nodi disponibili eseguendo microk8s kubectl get nodes.

La rimozione di un nodo dal cluster è un esercizio di inversione. Innanzitutto, esegui microk8s leave sul nodo di destinazione. Quindi eseguire microk8s remove-node 10.108.0.1 sul master, sostituendo l'indirizzo IP del nodo rimosso. Questo notificherà la rimozione a tutti gli altri nodi. Il nodo di destinazione tornerà a una normale installazione autonoma di MicroK8s, diventando il master di se stesso.

Conclusione

MicroK8s è una distribuzione Kubernetes minimale che è facilmente autosufficiente -hosted sul proprio hardware. È completamente conforme a CNFC e include componenti aggiuntivi integrati per la dashboard ufficiale di Kubernetes, il routing Ingress e la rete di servizi Istio. Questi ti aiutano a configurare rapidamente il tuo cluster pronto per la produzione in grado di abbinare le offerte Kubernetes gestite dai provider di cloud pubblico.

Pubblicità

MicroK8s supporta una gamma particolarmente ampia di hardware e architetture di distribuzione. Funziona su workstation per sviluppatori, in ambienti di produzione ad alta disponibilità e su Raspberry Pi. Questa flessibilità ti consente di utilizzare esattamente la stessa tecnologia in fase di sviluppo e produzione, anche fino all'implementazione di Kubernetes.

Rispetto a progetti rivali come Minikube, MicroK8s eccelle nell'esecuzione in ambienti con risorse limitate con spese generali minime. Trae vantaggio dalla propria containerizzazione, utilizzando il formato del pacchetto snap, quindi non ci sono macchine virtuali pesanti da eseguire. Questo ti lascia con più capacità per ospitare i tuoi carichi di lavoro e altri strumenti di sviluppo.

Mentre MicroK8 è nato come progetto incentrato sugli sviluppatori, mirato a test e prototipi locali, ora è classificato come un prodotto di produzione- pronta distribuzione Kubernetes con una comprovata esperienza nel seguire da vicino i rilasci upstream. I cluster possono essere aggiornati alle nuove versioni di Kubernetes utilizzando il comando snap refresh microk8s.