Cosa sono le distribuzioni in Kubernetes?
Le distribuzioni sono costituite da un gran numero di baccelli identici senza caratteristiche differenziali. Una distribuzione crea molte copie dell'applicazione e sostituisce automaticamente quelle che falliscono o non rispondono. La distribuzione dell'applicazione garantisce che almeno un'istanza sia preparata a dare una risposta alle domande degli utenti. Il controller di distribuzione di Kubernetes è incaricato della gestione delle distribuzioni.
Una delle parti essenziali delle distribuzioni è come gestisce le modifiche all'applicazione. Quando si aggiorna il manifest di distribuzione in Kubernetes, l'applicazione viene aggiornata su base predefinita. In questo modo, la versione precedente della distribuzione continuerà a funzionare mentre quella nuova viene impostata.
Nelle distribuzioni, viene utilizzato un modello di pod per specificare un requisito per i suoi pod. L'aspetto di ogni pod è definito dalla specifica POD, che include quali servizi dovrebbero funzionare all'interno dei suoi contenitori, quali volumi i pod dovrebbero montare e altri aspetti.
Quando viene aggiornato il modello di pod di una distribuzione, vengono prodotti nuovi pod.
Prerequisito:
Per utilizzare KuBectl per eseguire i comandi, è necessario prima impostare un cluster minikube sul nostro sistema. Ubuntu 20.04 è stato utilizzato per implementare i comandi in questo argomento. Puoi anche utilizzare il nostro sistema operativo preferito poiché abbiamo già installato Kubectl. Deve essere installato prima che i comandi possano essere eseguiti.
Per avviare un terminale, possiamo prendere una delle due tecniche. Un'opzione è utilizzare la barra delle applicazioni del nostro sistema operativo per raggiungere il terminale. Un altro modo è utilizzare il collegamento della tastiera “Ctrl + alt + T."Per avviare un terminale, selezionare una di queste opzioni.
Innanzitutto, dobbiamo avviare un cluster minikube precedentemente distribuito su Ubuntu 20.04. Ora lanceremo Minikube digitando il seguente comando nel terminale. L'istruzione e il suo output possono essere compresi nello screenshot apposto.
Creazione di distribuzioni
La maggior parte delle applicazioni in stile servizio in Kubernetes utilizza distribuzioni per gestire le loro applicazioni. Le distribuzioni definiscono come verrà distribuito il contenitore dell'applicazione e il numero di istanze da eseguire in Kubernetes. Successivamente, Kubernetes gestirà l'esecuzione del numero richiesto di repliche. Kubectl Applica e Kubectl Crea Create può essere utilizzato per creare una distribuzione.
Dopo che è stato costruito, la distribuzione garantisce che il numero di baccelli che hai specificato sta funzionando. La distribuzione sostituirà i baccelli che falliscono o vengono espulsi dai loro nodi.
Un esempio di file manifest di distribuzione in formato YAML è il seguente:
L'intero file di configurazione è disponibile di seguito. Il campo Metadata: Nome indica che viene creata una distribuzione denominata Nginx. Secondo la colonna Replicas, la distribuzione genera tre pod replicati.
Il modello POD o il campo 'Spec: modello ", mostra l'etichetta NGINX. Il modello: parametro SPEC nel modello POD specifica che i pod eseguono un solo contenitore, NGINX, che utilizza l'immagine NGINX Docker Hub versione 1.14.2. La distribuzione rende la porta 80 disponibile per i pod da utilizzare.
Prima di procedere e seguire gli ulteriori passaggi, assicurati che il cluster Kubernetes sia attivo e gestisce. Per costruire il suddetto distribuzione, seguire le procedure descritte di seguito.
In questo caso abbiamo usato il comando "kubectl. La distribuzione è stata configurata correttamente, come evidenziato dall'output. L'istruzione e la sua produzione possono essere afferrate nello screenshot apposto.
Ora esegui i comandi "Kubectl Get Deployments" per vedere se la distribuzione è creata o meno. Il risultato assomigliarà a questo (vedi sotto) se la distribuzione è ancora in fase di creazione. Il numero di copie previste, secondo il.spec.il campo di repliche è tre. L'istruzione e la sua produzione possono essere afferrate nello screenshot apposto.
Il comando di lancio in kubectl viene utile qui! Possiamo utilizzarlo per monitorare l'avanzamento della nostra distribuzione.
Il comando, per impostazione predefinita, attende fino a quando tutti i pod non avranno iniziato correttamente. Il comando parte con un codice di ritorno zero quando la distribuzione viene completata correttamente.
Ora è possibile eseguire la distribuzione dello stato di lancio di Kubectl/NGINX-Deployment per esaminare lo stato di lancio di distribuzione. L'istruzione e la sua produzione possono essere afferrate nello screenshot apposto.
Dopo alcuni secondi, esegui 'Kubectl Ottieni nuovamente distribuzioni. Ecco come appare l'output. Puoi vedere che la distribuzione ha costruito tutte e tre le repliche e che tutte le repliche sono aggiornate (hanno il modello POD più recente) e pronti per l'uso. L'istruzione e la sua produzione possono essere afferrate nello screenshot apposto.
Successivamente, useremo il comando "Kubectl Get RS". Questo ti aiuterà a vedere la replicaset (RS) che la distribuzione ha creato specificamente. L'istruzione e la sua produzione possono essere afferrate nello screenshot apposto.
I seguenti campi sono prodotti dal comando "kubectl get rs". La sezione seguente mostra quale scopo servono.
Vale la pena notare che il nome della replicAset è sempre [NAME di distribuzione]-[Stringa casuale]. La stringa casuale viene creata a caso usando il seme pod-template-hash.
Conclusione:
Abbiamo discusso delle distribuzioni dell'elenco Kubectl in questo articolo. Il normale flusso di distribuzione di Kubernetes per le app del modello di servizio e come funzionano. Abbiamo mostrato come aggiungere controlli di stato e un metodo di rollback automatizzato alla sequenza di distribuzione.