Come creare contenitori INIT in Kubernetes

Come creare contenitori INIT in Kubernetes
Questo tutorial ti darà una panoramica dei contenitori INIT in Kubernetes. Kubernetes funziona bene con i contenitori, il motivo per cui è diventato la massima preferenza degli sviluppatori. Kubernetes ti consente di gestire tutti i contenitori in un unico posto con un solo pannello di controllo. In questo articolo, discuteremo di ciò che sono i contenitori in Kubernetes e ci concentreremo specificamente sui contenitori INIT in Kubernetes. Con l'aiuto di esempi, ti mostreremo come puoi facilmente creare un contenitore INIT in Kubernetes.

Cos'è un contenitore in Kubernetes?

Un contenitore è un pacchetto completo che contiene tutto il necessario per eseguire un'applicazione. È un'immagine di un pacchetto software pronto per la corsa che consente a un'applicazione di eseguire la funzione desiderata. Contiene codice, librerie di sistema, valori di impostazione predefinita essenziali e qualsiasi altro requisito di runtime. Devi solo codificare il contenitore una volta e dopo, può essere eseguito ovunque. È indipendente dalla piattaforma, quindi non avrai problemi durante l'esecuzione delle applicazioni su qualsiasi piattaforma utilizzando i contenitori. I contenitori possono virtualizzare il sistema operativo che consente di eseguire le tue applicazioni da qualsiasi luogo dalla piattaforma o dal data center privato o persino al cloud pubblico.

Cos'è un contenitore Init in Kubernetes?

Il contenitore INIT in Kubernetes è un metodo per eseguire la routine di inizializzazione del primo esecuzione in un pod Kubernetes. È un contenitore specializzato leggero che funziona sempre prima dell'applicazione o di qualsiasi altro contenitore principale che funziona in un pod. Contiene lo script di configurazione e altre utility che generalmente non sono presenti nell'immagine dell'applicazione. Di solito è definito nella specifica POD insieme all'array dei contenitori. L'utilizzo di base di un contenitore INIT è quello di bootstrap Appian con driver JDBC o RDBMS che non sono inclusi nell'immagine WebApp Docker. Può essere utilizzato per ritardare o bloccare l'applicazione o altri contenitori per iniziare quando è necessario attendere che lo script bootstrap sia completato o che le risorse e le dipendenze siano disponibili.

Come creare un contenitore Init nell'ambiente Kubernetes?

Poiché i contenitori di app multipli vengono eseguiti nel pod, più di un contenitore INIT può anche eseguire in un singolo pod. e tutti completeranno la loro esecuzione prima che qualsiasi contenitore dell'app inizi la sua esecuzione. I contenitori INIT vengono eseguiti in una sequenza, quando un contenitore INIT completa la sua esecuzione, quindi quello successivo avvia la sua esecuzione e quando tutti i contenitori INIT completano la propria esecuzione, qualsiasi contenitore dell'app avvia la sua esecuzione.

Inoltre, se l'esecuzione di qualsiasi contenitore INIT non riesce, allora Kubernetes riavvia ripetutamente il contenitore fino a quando non completa la sua esecuzione correttamente. Ora, creiamo un contenitore Init in Kubernetes. Ma prima, assicurati che il tuo sistema soddisfi tutte le esigenze di base per creare un contenitore init. Per creare un contenitore init devi avere:

  • Ubuntu 20.04 o qualsiasi altra ultima versione
  • Strumento di riga di comando kubectl
  • Cluster Minikube

Ora, passiamo all'implementazione.

Passaggio n. 1: avviare il cluster minikube

È necessario avviare il cluster minikube per utilizzare l'ambiente Kubernetes per eseguire comandi Kubectl. Per avviare il cluster Minikube, useremo il seguente comando:

> Minikube Start

Questo si sveglierà il cluster minikube e ti permetterà di eseguire i comandi Kubectl nel terminale.

Passaggio n. 2: crea il file di configurazione YAML

Ora, il processo di creazione di un contenitore INIT è iniziato. La prima e principale cosa di cui è necessario creare il contenitore INIT è creare un file di configurazione YAML. È possibile utilizzare il comando "nano" per creare un nuovo file YAML o aprire un file YAML già esistente contenente i dettagli di configurazione. Il comando indicato di seguito ti consentirà di creare un file yaml del nome prescelto:

> Nano Podin.Yaml

Una volta creato il file YAML, è possibile salvare i dettagli di configurazione come quello indicato nell'istantanea seguente:

Passaggio n. 3: distribuire il file yaml

Ora che il nostro file di configurazione è pronto, lascia che lo distribuiamo utilizzando il comando kubectl. Il comando seguente ti consentirà di eseguire il pod sul file di configurazione che abbiamo appena creato:

> kubectl applica -f podin.Yaml

L'output mostra chiaramente che il pod chiamato myapp-pod è stato creato.

Passaggio n. 4: controlla lo stato del pod

Ora, controlliamo lo stato del pod con l'aiuto del comando indicato di seguito:

> kubectl get -f podin.Yaml

Questo sta semplicemente mostrando i parametri di nome, stato, stato, riavvio e età del pod. Se è necessario esaminare lo stato dettagliato del pod, puoi utilizzare quanto segue di seguito:

> kubectl descrivi -f podin.Yaml

Qui, puoi vedere lo stato di detail, che ti sta dicendo quando è iniziato il pod, su cui è in esecuzione l'indirizzo IP, su cui è in esecuzione il nodo, ecc. dandoti un'immagine dettagliata dello stato del pod.

Passaggio n. 5: controllare i registri del contenitore INIT

Dall'output indicato nel passaggio precedente, puoi vedere che il pod che abbiamo creato è attivo e funzionante. Ora, se si desidera vedere i registri del contenitore INIT in esecuzione su quel pod, è possibile utilizzare il comando indicato di seguito:

> Kubectl registri myapp-pod -c init-myservice

Il nome del contenitore INIT è "init-myservice" che menzioniamo specificamente per controllare il suo registro. Ora, quando esegui questo comando, otterrai un output simile a quello indicato di seguito:

Conclusione

In questo articolo, abbiamo appreso il concetto di base di ciò che sono i contenitori mentre si concentrano specificamente sul contenitore Init in Kubernetes. Il contenitore INIT è un contenitore specializzato leggero che esegue prima che qualsiasi altro contenitore si avvii nel pod. Le sue funzionalità a volte si sovrappongono alle sonde di avvio e prontezza. Queste sonde possono essere utilizzate per eseguire un'attività come bloccare o ritardare l'avvio dell'applicazione fino a quando non è stata soddisfatta una determinata condizione. Dimostrando un semplice esempio, abbiamo imparato come creare un contenitore INIT in Kubernetes.