In questo post, esamineremo le opzioni di distribuzione per l'utilizzo del sistema di orchestrazione contenitore Kubernetes per distribuire i contenitori. Avremo imparato a distribuire nel cluster Kubernetes in vari modi entro la fine di questo articolo. Se vuoi davvero saperne di più su questo argomento, continua a leggere l'articolo. Il codice è disponibile nelle sezioni seguenti.
Cosa sono le distribuzioni in Kubernetes?
Le distribuzioni di Kubernetes sono solo repliche avvolte in un wrapper Kubernetes. La distribuzione monitora il numero di pod operativi, mentre la replicAset gestisce il numero di pod in esecuzione. Ciò consente aggiornamenti di rotolamento, controlli di salute dei pod e facile rollback degli aggiornamenti.
La distribuzione manterrà solo una singola replica durante le normali operazioni, garantendo che il numero di pod richiesti sia operativo.
Non dovresti gestire la replicaset che la distribuzione crea direttamente utilizzando le distribuzioni. Tutte le operazioni condotte su una replicAset devono invece essere eseguite sulla distribuzione, gestendo il processo di aggiornamento della replicaset.
La possibilità di eseguire aggiornamenti di rotolamento è uno dei vantaggi chiave della distribuzione. Le distribuzioni ti danno molta flessibilità rispetto agli aggiornamenti di rotolamento, permettendoti di aggiornare gradualmente la configurazione dei tuoi pod.
Quali sono i casi d'uso tipici per la distribuzione?
Le distribuzioni sono comunemente utilizzate nei seguenti scenari:
Prerequisiti:
Innanzitutto, è necessario installare il cluster minikube e iniziare Ubuntu 20.04. Ora apri un terminale per eseguire i comandi. A tale scopo, premere il collegamento "Ctrl+Alt+T" sulla tastiera.
Puoi anche scrivere il comando "Start Minikube" nel terminale. Dopo questo, aspetta un po 'fino all'inizio. Quello che segue è il risultato di questa istruzione:
$ Minikube inizi
Come creare una distribuzione?
In Kubernetes, le distribuzioni sono formate specificando i loro requisiti in un file di definizione YAML. Usiamo l'esempio di una distribuzione denominata.YAML con i seguenti parametri per vedere come è configurata una distribuzione di aggiornamento del rolling:
$ nano schieramento.Yaml
L'intero file di configurazione può essere trovato qui. Per far apparire tre pod, il codice seguente crea una replicaset. Nell'esempio, il.metadati.La colonna Nome indica che è stata creata una distribuzione denominata Nginx-Deployment. La distribuzione produce tre baccelli replicati, secondo il.spec.Attributo Replicas.
La distribuzione.spec.Il campo selettore specifica il modo in cui determina quali pod gestire. In questo caso, utilizzerai il modello POD per selezionare un'etichetta (app: nginx). Sono possibili regole di selezione più complicate se il modello POD si adatta ai criteri.
Per creare la distribuzione, eseguire il comando dato dopo aver configurato YAML di distribuzione:
$ kubectl crea -f distribuisci.Yaml
Utilizzare il comando KuBectl Get Deployments per vedere se la distribuzione è stata creata, come mostrato di seguito.
$ kubectl ottieni distribuzioni
Se ci sono distribuzioni in corso, è possibile monitorare lo stato di lancio scrivendo questo comando.
Dopo alcuni secondi, esegui Kubectl per ottenere di nuovo le distribuzioni per vedere i dettagli.
$ kubectl ottieni distribuzioni
Per ispezionare la replicAset (RS) creata dalla distribuzione, utilizzare il comando Kubectl Get RS. Ecco il risultato.
$ kubectl ottieni Rs
Esegui kubectl Ottieni pod -show etichette per vedere le etichette prodotte automaticamente per ogni pod. L'output potrebbe apparire così:
$ kubectl get pods-show labels
Come aggiornare una distribuzione?
Per aggiornare la distribuzione, seguire i passaggi elaborati di seguito:
Modifichiamo i pod Nginx per utilizzare la seguente versione di NGINX: Invece di usare NGINX: 1.14.2 Immagine, usa il 1.16.1 immagine.
Esegui il comando dato e visualizza lo stato di lancio.
Al termine dell'implementazione, usa Kubectl per ottenere distribuzioni per vedere la distribuzione. Quello che segue è l'output:
$ kubectl ottieni distribuzioni
Per recuperare i dettagli sulla distribuzione, eseguire il seguente comando:
$ kubectl Descrivi le distribuzioni
Supponiamo che tu abbia fatto un errore quando si cambia la distribuzione e hai digitato NGINX: 1.161 invece di nginx: 1.16.1 nel nome dell'immagine:
L'implementazione viene bloccato. Puoi controllare le prestazioni del lancio qui:
Per fermare l'orologio dello stato di distribuzione sopra, utilizzare CTRL-C.
Quali sono i vantaggi degli aggiornamenti di rotolamento?
Gli aggiornamenti di rotolamento consentono l'integrazione progressiva delle modifiche, offrendo una maggiore flessibilità e controllo sulla durata della vita dell'applicazione. Di seguito sono riportati alcuni dei vantaggi dell'utilizzo degli aggiornamenti di rotolamento per i cluster di Kubernetes:
Conclusione:
Questo post ha coperto le basi delle distribuzioni, come funzionano gli aggiornamenti di rotolamento e una varietà di scelte di configurazione per aggiornamenti di messa a punto e pianificazione dei pod. Dovresti ora essere in grado di stabilire e modificare le distribuzioni con fiducia per raggiungere lo stato corretto per la tua applicazione.