Come creare uno stato in kubernetes

Come creare uno stato in kubernetes
In questa guida, definiremo come generare uno stato in kubernetes. Questa guida ti aiuterà a gestire le applicazioni Kubernetes con Statefulset mentre mostra come creare, aggiornare, scala ed eliminare i pod di Statefulset. I set di stato vengono utilizzati nei sistemi distribuiti e nelle applicazioni statali. Prima di iniziare a imparare a creare Statefulset in Kubernetes, dovresti acquisire familiarità con le basi dei sistemi distribuiti e dell'amministrazione delle applicazioni statali su Kubernetes. Entro la fine di questo articolo, sarai in grado di creare, ridimensionare, aggiornare ed eliminare lo Statefulset in Kubernetes.

Prerequisiti

Ubuntu 20.02 o qualsiasi altra ultima versione di Ubuntu dovrebbe essere installata nel sistema. Abilita la macchina virtuale sul tuo sistema Ubuntu per eseguire i comandi Kubernetes. Devi avere familiarità con POD, DNS del cluster, StatefulSets e lo strumento di riga di comando Kubectl.

Segui questa guida passo-passo per imparare a creare uno stato in kubernetes:

Passaggio n. 1: avvia la dashboard di Kubernetes

Per eseguire l'applicazione Kubernetes o i comandi sull'applicazione Kubernetes, è necessario avere un terminale in esecuzione Kubernetes. Il "minikube" è il terminale Kubernetes che viene utilizzato per eseguire i vari comandi sulle applicazioni Kubernetes. Usa il comando indicato di seguito per avviare il minikube:

kalsoom@virtualbox> minikube start

Quando si inserisce questo comando sul terminale Kubernetes, premere Invio per eseguirlo. Dopo aver implementato l'istruzione, otterrai il seguente risultato:

Passaggio n. 2: apri/crea un file yaml

Il prossimo passo è aprire un file yaml, se hai già il file creato. Altrimenti, è possibile creare un nuovo file YAML da utilizzare per la creazione di Statefulset. Kubernetes fornisce il comando "nano" per creare o aprire un file nel sistema Kubernetes. Specifica il nome del file con l'estensione del file ed esegui il comando nano su di esso. Vedi il comando indicato di seguito:

kalsoom@virtualbox> nano textweb.Yaml

Quando si esegue questo comando nel terminale Kubernetes, vedrai il seguente file aperto nel terminale Kubernetes:

Passaggio n. 3: creare la configurazione dal file YAML

Il comando "kubectl create" viene utilizzato per creare la configurazione per i servizi. Abbiamo il file YAML e tutte le specifiche per il servizio Statefulset menzionato nel file. Il file verrà utilizzato con il comando "Crea" per creare direttamente la risorsa Kubernetes sul terminale Kubernetes. Vedi il comando indicato di seguito per creare direttamente le risorse Kubernetes:

kalsoom@virtualbox> kubectl create -f testweb.Yaml

Dopo la riuscita esecuzione del comando, vedrai il messaggio "creato" sul terminale. Verranno creati due pod con questo comando e ognuno di essi sarà in esecuzione nel server Web Nginx.

Passaggio n. 4: crea i baccelli di stato

Il prossimo passo è creare i pod per lo stato. Di seguito è riportato il comando utilizzato per creare i pod per Statefulset:

kalsoom@virtualbox> kubectl ottieni pod -w -l app = nginx

Dopo aver eseguito questo comando, vedrai il seguente risultato sul terminale di Kubernetes:

Passaggio #5: ottieni i servizi del Webserver Nginx

Dato che abbiamo creato due pod nel passaggio precedente e ognuno di essi è in esecuzione nel server Nginx, otteniamo i servizi di tali pod dal server Web NGINX. Utilizzare il seguente comando per ottenere i servizi Nginx:

kalsoom@virtualbox> kubectl ottieni servizio nginx

Scrivi questo comando sul terminale Minikube e premere il comando Invio per eseguirlo e vedere il seguente risultato:

Passaggio n. 5: Ottieni Web Statefulset

Il prossimo passo è confermare che entrambi i pod sono stati creati correttamente e che possono essere fatti utilizzando Web Statefulset. Per ottenere Web Statefulset, utilizzare il seguente comando:

kalsoom@virtualbox> kubectl ottieni statefulset web

Scrivi questo comando sul terminale Kubernetes, dopo l'esecuzione otterrai il seguente output:

Passaggio n. 6: crea le repliche ordinate di Statefulset

I baccelli per Statefulset con più repliche sono creati in ordine sequenziale. Ogni pod viene distribuito in un 0 alla sequenza N-1. Configuriamo l'ordine dei baccelli creati nel terminale. Utilizzare il comando "Kubectl Get" per configurare l'ordine. Vedi il comando completo di seguito:

kalsoom@virtualbox> kubectl ottieni pod -w -l app = nginx

Quando si esegue questo comando nel terminale Kubernetes, l'output alla fine sembrerà quello indicato nello snippet di seguito:

Come puoi vedere dall'output, fino a quando il pod Web-0 non è stato eseguito, il pod Web-1 non è stato lanciato.

Passaggio n. 7: esaminare l'indice ordinale dei pod

I pod vengono creati con l'indice ordinale e hanno anche un'identità di rete stabile, esaminiamo l'indice ordinale dei pod di Statofulset con il seguente comando:

kalsoom@virtualbox> kubectl ottieni pod -l app = nginx

Questo comando mostrerà l'identità univoca dei pod basati sull'indice ordinale univoco, che è stato assegnato dal controller Statefulset a ciascun POD. Il nome del pod completo è dato come - e due pod saranno creati per Web Statefulset perché ha due repliche. Ora, vediamo l'output di seguito:

Passaggio n. 8: implementa l'istruzione del nome host in ogni pod

Un nome host costante è stato assegnato a ciascun pod a terra sul suo indice ordinale. Per implementare il nome host assegnato a ciascun pod, possiamo utilizzare il seguente comando:

kalsoom@virtualbox> per i in 0 1; do kubectl exec "web- $ i" -sh -c 'hostname'; Fatto

Questo comando ti mostrerà le due repliche del pod. Vedi l'output indicato nello snippet di seguito:

Passaggio n. 8: esaminare gli indirizzi DNS in cluster

Gli indirizzi DNS in cluster dei pod vengono esaminati utilizzando "nslookup". Il pacchetto "dnsutils" fornisce la funzionalità "nslookup" per eseguire il comando "kubectl run" sul contenitore Statefulset. Il comando completo è riportato di seguito per la tua guida:

kalsoom@virtualbox> kubectl run -i - -ty -image busybox: 1.28 DNS-test--Restart = mai--rm

Questo avvierà una nuova shell in cui è possibile eseguire il contenitore DNS di testo con il seguente comando:

kalsoom@virtualbox> nslookup web-o.nginx

Quando si esegue questo comando, un output simile sarà disponibile sul tuo terminale:

Ora, controlla lo stato dei baccelli statali e quindi esci dalla shell del contenitore. Ancora una volta, usa il comando "Kubectl Get" per vedere i baccelli dello stato.

Passaggio n. 9: Elimina i pod in Statefulset

Il passaggio finale è cancellare tutti i pod nello stato. E per questo, puoi praticare l'istruzione "elimina kubectl". Vedi il comando completo indicato di seguito:

kalsoom@virtualbox> kubectl elimina pod -l app = nginx

Quando si esegue questo comando nel terminale Kubernetes, l'output alla fine sembrerà così:

Conclusione

In questo articolo, abbiamo imparato a creare, aggiornare ed eliminare i pod nello stato di Kubernetes. Abbiamo usato diversi comandi Kubectl per configurare i pod in Statefulset. Il file YAML è stato utilizzato per la definizione dei servizi dei pod e per configurare tali servizi in Statefulset