GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come distribuire applicazioni su Kubernetes usando Helm

Questo articolo è la continuazione del mio articolo "Cos'è Helm e come installarlo sul server Ubuntu 20.04?". Se non conosci Helm, ti consiglierei di leggere prima l'articolo che ho menzionato. In questo articolo rilasceremo Apache dal grafico esistente. Creeremo un grafico di esempio e lo rilasceremo, aggiorneremo, eseguiamo il rollback, lo elimineremo e lo ripristineremo. Vediamo i comandi in breve prima di usarli nell'articolo successivo.

  1. ricerca timone :Cerca i grafici di Helm
  2. Repo di timone :esegui operazioni come aggiungere, elencare, rimuovere, aggiornare e indicizzare nel repository
  3. elimina timone :Elimina il grafico che a sua volta elimina tutti i suoi oggetti Kubernetes.
  4. stato del timone :Visualizza lo stato della versione.
  5. Crea timone :crea una mappa del timone.
  6. Installazione del timone :Installa un grafico che a sua volta crea i suoi oggetti Kubernetes
  7. Miglioramento del timone :aggiorna una versione con le modifiche apportate.
  8. storia del timone :Ottieni la cronologia della versione.
  9. rollback del timone :ripristina le modifiche alla versione precedente.

Prima di procedere si presume che tu abbia familiarità con le basi di Helm. Si presume inoltre che tu abbia già installato un cluster Kubernetes e un client timone.

Prerequisiti

  1. Cluster Kubernetes con almeno 1 nodo di lavoro.
    Se vuoi imparare a creare un Cluster Kubernetes, fai clic qui. Questa guida ti aiuterà a creare un cluster Kubernetes con 1 master e 2 nodi su istanze AWS Ubuntu 18.04 EC2.
  2. Helm installato sul tuo nodo principale (cerca il mio articolo intitolato "Cos'è Helm e come installarlo sul server Ubuntu 20.04" per comprendere le basi di Helm e installarlo).

Cosa faremo?

  1. Rilascia un grafico di esempio dal repository.
  2. Crea un grafico e rilascia un'applicazione di esempio.
  3. Aggiorna la versione.
  4. Ripristina la versione dopo che è stata eliminata

Rilascia un grafico di esempio dal repo

Per prima cosa, controlliamo se l'"elmo" è disponibile sul server o meno.

versione timone

Ad esempio, proviamo a installare un grafico Apache dall'hub. Esegui il comando seguente per cercare Apache sull'hub.

hub di ricerca timone apache

Otterrai una serie di risultati, copierai l'URL di una delle ricerche per Apache. In questo caso, ho copiato il primo URL.

Premi l'URL nel browser web e vedrai una pagina come segue.

In questa pagina riceverai i comandi per aggiungere un repository al tuo sistema locale e installare il grafico da esso.

Esegui i comandi sul tuo sistema locale che aggiungerà il repository per il grafico Apache.

helm repo aggiungi bitnami https://charts.bitnami.com/bitnami

lista repo timone

Una volta che hai il repository sul tuo sistema, sei pronto per installare il chart e creare una versione per Apache utilizzando Helm.

helm install my-release bitnami/apache

Dopo aver eseguito correttamente i comandi, vedrai l'output come sopra.

Una volta rilasciato il grafico, puoi vedere gli oggetti creati nel cluster Kubernetes.

kubectl ottiene nodi

kubectl ottieni i pod

Ora puoi ottenere l'IP del pod e provare a raggiungere la pagina di Apache utilizzando il comando curl.

kubectl get pods -o wide

kubectl ottieni svc

ricciolo 10.244.1.2:8080

Se vuoi eliminare la rilascio puoi farlo semplicemente usando il seguente comando

helm elimina la mia versione

Puoi elencare le versioni nel cluster e vedere se la versione è stata eliminata correttamente o meno.

timone ls

stato del timone my-release

Crea un grafico e distribuisci un'applicazione di esempio

Nello scenario precedente, abbiamo installato un grafico che era prontamente disponibile e configurato. Possiamo creare il nostro grafico e rilasciare la nostra applicazione. Creare un grafico è molto semplice usando helm. Se esegui il comando seguente, otterrai un grafico con un'applicazione di esempio di Nginx al suo interno.

timone crea la mia prima carta

Esplora la struttura delle cartelle del grafico che abbiamo creato usando il comando precedente.

cd il mio primo grafico/

ls -l

ls -l grafici/

ls -l modelli/

ls -l templates/tests/

Controlla il contenuto del file Chart.yaml.

ls -lt

gatto Chart.yaml

Controlla il contenuto di values.yaml

ls -lt

valori di gatto.yaml

Ora distribuiamo l'applicazione di esempio utilizzando il grafico locale.

pwd

cd..

ls -l | grep il mio primo grafico

kubectl ottieni i pod

helm install my-first-release my-first-chart/

Una volta che il grafico è stato rilasciato correttamente, puoi vedere un pod creato nel cluster.

kubectl ottieni i pod

kubectl ottieni svc

Ora puoi accedere al pod Nginx tramite il servizio.

ricciolo 10.104.229.187

Puoi trovare informazioni sulla versione che abbiamo creato usando il comando seguente.

timone ls

stato del timone il mio-primo-rilascio

Aggiorna la versione

Nello scenario precedente, abbiamo creato un grafico con un'applicazione Nginx di esempio. Il conteggio delle repliche nello scenario precedente era 1. Se desideri aumentare il conteggio delle repliche, puoi farlo facilmente apportando modifiche al file values.yaml.

cat il mio-primo-grafico/values.yaml | grep replica

vim my-first-chart/values.yaml

cat il mio-primo-grafico/values.yaml | grep replica

timone ls

Ora puoi facilmente implementare le modifiche e aggiornare la tua versione.

helm upgrade my-first-release my-first-chart/

Puoi anche notare la revisione della rilascio aggiornata alla 2.

timone ls

Questa volta puoi vedere due pod in esecuzione nel cluster poiché avevamo specificato il conteggio delle repliche su 2.

kubectl ottieni i pod

timone ls

Se controlliamo la cronologia del rilascio noteremo che il rilascio ha due revisioni. La prima revisione aveva 1 pod e in seguito abbiamo aggiornato il conteggio delle repliche a 2 creando la revisione 2 della versione.

storia del timone my-first-release

Se non vogliamo che le modifiche vengano rilasciate nella revisione 2 e vogliamo ripristinare la revisione 1, possiamo semplicemente farlo utilizzando il seguente comando di rollback.

helm rollback my-first-release 1

timone ls

E questo creerà la revisione 3 per il rilascio.

storia del timone my-first-release

Ora puoi vedere che c'è solo un pod in esecuzione nel cluster.

kubectl ottieni i pod

Nel caso in cui desideri eliminare l'applicazione Nginx di esempio rilasciata dal grafico, puoi eliminarla eliminando la versione.

timone ls

helm elimina la mia prima versione

timone ls

Ripristina la versione dopo che è stata eliminata

Nello scenario precedente, abbiamo eliminato il rilascio. Ma per impostazione predefinita, la versione non conserva la cronologia delle versioni quando viene eliminata. Nel caso in cui desideri ripristinare in uno scenario del genere, non sarai in grado di farlo a meno che non specifichi l'opzione --keep-history nel comando di eliminazione del rilascio.

timone ls

helm install my-second-release my-first-chart/

timone ls

Se specifici --keep-history opzione durante l'eliminazione del rilascio, il timone creerà una nuova versione del rilascio. In questo modo è possibile ripristinare la versione di lavoro precedente anche dopo aver eliminato la release o l'applicazione.

helm delete my-second-release --keep-history

timone ls

timone ls -a

storia del timone my-second-release

rollback del timone my-second-release 1

timone ls

storia del timone my-second-release

Conclusione

In questo articolo abbiamo distribuito un'applicazione di esempio dal grafico Helm disponibile su Internet. Abbiamo anche visto i passaggi per creare un grafico Helm sul nostro sistema e rilasciarlo. Insieme a questo, abbiamo visto come eliminare i grafici Helm, tornare alle versioni precedenti e conservare la cronologia delle versioni anche dopo aver eliminato la chat.


Ubuntu
  1. Come creare un grafico del timone

  2. Installa Elasticsearch su Kubernetes utilizzando Helm Chart

  3. Come distribuire Elasticsearch su Kubernetes

  4. Come distribuire un'istanza di WordPress su Kubernetes

  5. Come distribuire Nginx Load Balancing su Kubernetes Cluster su Ubuntu 18.04 LTS

Che cos'è Ingress Controller e come distribuire Nginx Ingress Controller in Kubernetes Cluster su AWS utilizzando Helm

Come installare Kubernetes su Ubuntu 20.04

Come installare Kubernetes usando Minikube in CentOS Linux

Come distribuire Mattermost su Ubuntu 20.04

Come distribuire Kubernetes a nodo singolo con Microk8s su Ubuntu 20.04

Come monitorare le applicazioni Node.js utilizzando il dashboard Web PM2