Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Configurazione e Avvio del Deployment Kubernetes | CI/CD e Automazione
Introduzione a DevOps

bookConfigurazione e Avvio del Deployment Kubernetes

Ora che la tua applicazione funziona correttamente all'interno dei container, la prossima sfida è orchestrare e gestire questi container su larga scala. Qui entra in gioco Kubernetes.

Per iniziare, definirai lo stato desiderato della tua applicazione utilizzando file YAML. Un file descriverà un Deployment, che gestisce aggiornamenti e scalabilità, mentre un altro definirà un Service, che espone la tua applicazione alla rete e la rende accessibile agli utenti.

Note
Approfondisci

YAML (YAML Ain't Markup Language) è un formato leggibile dall'uomo per i file di configurazione. Viene spesso utilizzato per descrivere infrastrutture, automatizzare processi e memorizzare impostazioni delle applicazioni.

Un Deployment garantisce che il numero desiderato di istanze dell'applicazione (Pod) sia sempre in esecuzione e facilita il rilascio di aggiornamenti o il ripristino a versioni precedenti. Un Service espone questi container alla rete e distribuisce il traffico in ingresso tra di essi.

Esecuzione di Minikube

Note
Definizione

Minikube è uno strumento leggero che consente di eseguire un cluster Kubernetes locale sul proprio computer. Crea un ambiente virtuale in cui è possibile testare ed esplorare Kubernetes senza la necessità di servizi cloud.

Dopo aver installato Minikube e averlo aggiunto al PATH di sistema, aprire PowerShell (o il terminale preferito) ed eseguire:

Questo comando verifica se Minikube è disponibile e mostra la versione installata.

Dopo aver confermato che Minikube è installato, avvia il cluster Kubernetes locale con:

Questo comando crea e avvia un cluster Kubernetes locale sulla tua macchina. Scarica i componenti necessari e avvia il control plane e i nodi worker.

Deployment: Distribuzione dell'applicazione

Inizia creando il file deployment.yaml. Un Deployment in Kubernetes garantisce che un numero specifico di Pod (istanze dell'applicazione) sia sempre in esecuzione e possa essere aggiornato o ripristinato senza tempi di inattività.

deployment.yaml

deployment.yaml

copy

In questo manifesto, il parametro replicas specifica quante istanze di Pod devono essere eseguite contemporaneamente — in questo caso, due. Per sapere quali Pod gestire, il Deployment utilizza una combinazione di selector e label: il selector funge da filtro per trovare i Pod con una specifica label, e il template del Pod definisce quella label. Quando le label corrispondono, il Deployment considera quei Pod come propri e si occupa di mantenerne il numero, aggiornarli e riavviarli se necessario.

Tutti i Pod operano sulla porta 3000. Possono utilizzare tutti la stessa porta perché ogni Pod funziona nel proprio spazio di rete isolato, quindi non c'è conflitto tra di loro.

Service: Accesso di rete all'applicazione

Una volta che il Deployment è stato creato, è necessario un Service per fornire accesso di rete e bilanciamento del carico tra i Pod. Creare il file service.yaml:

service.yaml

service.yaml

copy

Questo manifest definisce un Service chiamato my-app-service che indirizza il traffico verso i Pod con l'etichetta app: my-app. Ascolta sulla porta 80 esternamente e inoltra le richieste alla porta 3000 all'interno dei Pod.

Il tipo LoadBalancer è importante perché espone l'applicazione all'esterno e distribuisce il traffico tra i Pod.

Distribuzione dell'applicazione in Kubernetes

Una volta che i file YAML sono pronti, possono essere applicati al cluster:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Il comando kubectl apply -f crea o aggiorna le risorse nel cluster in base al contenuto del file YAML.

Verifica dello stato

Dopo aver applicato i file di configurazione, è importante confermare che tutto sia stato distribuito come previsto. Poiché Pod e Service impiegano qualche istante per avviarsi, inizia elencando i Pod in esecuzione:

Se il file deployment.yaml specifica replicas: 2, due Pod dovrebbero comparire nell'output.

Per confermare che il Service sia in esecuzione e accessibile:

Questo mostrerà l’indirizzo IP del Service e le porte attraverso cui è possibile accedere all’applicazione.

Ottieni l'URL del Servizio

Per accedere alla tua applicazione, esegui il seguente comando in PowerShell o nel tuo terminale:

Questo comando chiede a Minikube di restituire l'URL in cui la tua applicazione è esposta. Minikube controlla il Service che hai creato (my-app-service) e fornisce un link che puoi aprire nel browser.

Scalare l'Applicazione

Kubernetes semplifica la regolazione del numero di Pod in esecuzione senza interrompere l'applicazione.

Ad esempio, per scalare da 2 a 4 repliche:

Eseguendo nuovamente kubectl get pods verranno ora elencati quattro Pod attivi.

Kubernetes offre strumenti potenti per la gestione di applicazioni containerizzate su qualsiasi scala. Un Deployment garantisce che il numero corretto di Pod sia in esecuzione e può essere aggiornato o ripristinato facilmente. Un Service espone l'applicazione alla rete e bilancia il traffico in ingresso. I file di configurazione YAML rendono la configurazione chiara e leggibile, mentre i comandi kubectl permettono di applicare e gestire queste configurazioni in tempo reale.

1. Qual è lo scopo principale di un Deployment in Kubernetes?

2. Perché più Pod possono essere eseguiti sulla stessa porta (ad esempio, 3000) senza conflitti?

question mark

Qual è lo scopo principale di un Deployment in Kubernetes?

Select the correct answer

question mark

Perché più Pod possono essere eseguiti sulla stessa porta (ad esempio, 3000) senza conflitti?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 9

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

What should I do if my pods are not starting as expected?

How can I update my application without downtime using Kubernetes?

Can you explain the difference between a Deployment and a Service in Kubernetes?

Awesome!

Completion rate improved to 3.7

bookConfigurazione e Avvio del Deployment Kubernetes

Scorri per mostrare il menu

Ora che la tua applicazione funziona correttamente all'interno dei container, la prossima sfida è orchestrare e gestire questi container su larga scala. Qui entra in gioco Kubernetes.

Per iniziare, definirai lo stato desiderato della tua applicazione utilizzando file YAML. Un file descriverà un Deployment, che gestisce aggiornamenti e scalabilità, mentre un altro definirà un Service, che espone la tua applicazione alla rete e la rende accessibile agli utenti.

Note
Approfondisci

YAML (YAML Ain't Markup Language) è un formato leggibile dall'uomo per i file di configurazione. Viene spesso utilizzato per descrivere infrastrutture, automatizzare processi e memorizzare impostazioni delle applicazioni.

Un Deployment garantisce che il numero desiderato di istanze dell'applicazione (Pod) sia sempre in esecuzione e facilita il rilascio di aggiornamenti o il ripristino a versioni precedenti. Un Service espone questi container alla rete e distribuisce il traffico in ingresso tra di essi.

Esecuzione di Minikube

Note
Definizione

Minikube è uno strumento leggero che consente di eseguire un cluster Kubernetes locale sul proprio computer. Crea un ambiente virtuale in cui è possibile testare ed esplorare Kubernetes senza la necessità di servizi cloud.

Dopo aver installato Minikube e averlo aggiunto al PATH di sistema, aprire PowerShell (o il terminale preferito) ed eseguire:

Questo comando verifica se Minikube è disponibile e mostra la versione installata.

Dopo aver confermato che Minikube è installato, avvia il cluster Kubernetes locale con:

Questo comando crea e avvia un cluster Kubernetes locale sulla tua macchina. Scarica i componenti necessari e avvia il control plane e i nodi worker.

Deployment: Distribuzione dell'applicazione

Inizia creando il file deployment.yaml. Un Deployment in Kubernetes garantisce che un numero specifico di Pod (istanze dell'applicazione) sia sempre in esecuzione e possa essere aggiornato o ripristinato senza tempi di inattività.

deployment.yaml

deployment.yaml

copy

In questo manifesto, il parametro replicas specifica quante istanze di Pod devono essere eseguite contemporaneamente — in questo caso, due. Per sapere quali Pod gestire, il Deployment utilizza una combinazione di selector e label: il selector funge da filtro per trovare i Pod con una specifica label, e il template del Pod definisce quella label. Quando le label corrispondono, il Deployment considera quei Pod come propri e si occupa di mantenerne il numero, aggiornarli e riavviarli se necessario.

Tutti i Pod operano sulla porta 3000. Possono utilizzare tutti la stessa porta perché ogni Pod funziona nel proprio spazio di rete isolato, quindi non c'è conflitto tra di loro.

Service: Accesso di rete all'applicazione

Una volta che il Deployment è stato creato, è necessario un Service per fornire accesso di rete e bilanciamento del carico tra i Pod. Creare il file service.yaml:

service.yaml

service.yaml

copy

Questo manifest definisce un Service chiamato my-app-service che indirizza il traffico verso i Pod con l'etichetta app: my-app. Ascolta sulla porta 80 esternamente e inoltra le richieste alla porta 3000 all'interno dei Pod.

Il tipo LoadBalancer è importante perché espone l'applicazione all'esterno e distribuisce il traffico tra i Pod.

Distribuzione dell'applicazione in Kubernetes

Una volta che i file YAML sono pronti, possono essere applicati al cluster:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Il comando kubectl apply -f crea o aggiorna le risorse nel cluster in base al contenuto del file YAML.

Verifica dello stato

Dopo aver applicato i file di configurazione, è importante confermare che tutto sia stato distribuito come previsto. Poiché Pod e Service impiegano qualche istante per avviarsi, inizia elencando i Pod in esecuzione:

Se il file deployment.yaml specifica replicas: 2, due Pod dovrebbero comparire nell'output.

Per confermare che il Service sia in esecuzione e accessibile:

Questo mostrerà l’indirizzo IP del Service e le porte attraverso cui è possibile accedere all’applicazione.

Ottieni l'URL del Servizio

Per accedere alla tua applicazione, esegui il seguente comando in PowerShell o nel tuo terminale:

Questo comando chiede a Minikube di restituire l'URL in cui la tua applicazione è esposta. Minikube controlla il Service che hai creato (my-app-service) e fornisce un link che puoi aprire nel browser.

Scalare l'Applicazione

Kubernetes semplifica la regolazione del numero di Pod in esecuzione senza interrompere l'applicazione.

Ad esempio, per scalare da 2 a 4 repliche:

Eseguendo nuovamente kubectl get pods verranno ora elencati quattro Pod attivi.

Kubernetes offre strumenti potenti per la gestione di applicazioni containerizzate su qualsiasi scala. Un Deployment garantisce che il numero corretto di Pod sia in esecuzione e può essere aggiornato o ripristinato facilmente. Un Service espone l'applicazione alla rete e bilancia il traffico in ingresso. I file di configurazione YAML rendono la configurazione chiara e leggibile, mentre i comandi kubectl permettono di applicare e gestire queste configurazioni in tempo reale.

1. Qual è lo scopo principale di un Deployment in Kubernetes?

2. Perché più Pod possono essere eseguiti sulla stessa porta (ad esempio, 3000) senza conflitti?

question mark

Qual è lo scopo principale di un Deployment in Kubernetes?

Select the correct answer

question mark

Perché più Pod possono essere eseguiti sulla stessa porta (ad esempio, 3000) senza conflitti?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 9
some-alt