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 l'applicazione funziona correttamente all'interno dei container, la prossima sfida consiste nell'orchestrare e gestire questi container su larga scala. Qui entra in gioco Kubernetes.

Per iniziare, è necessario definire lo stato desiderato dell'applicazione utilizzando file YAML. Un file descriverà un Deployment, che gestisce aggiornamenti e scalabilità, mentre un altro definirà un Service, che espone l'applicazione alla rete e la rende accessibile agli utenti.

Note
Approfondimento

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 applicative.

Un Deployment garantisce che il numero desiderato di istanze dell'applicazione (Pod) sia sempre in esecuzione e semplifica il rilascio di aggiornamenti o il ripristino di 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 macchina. Scarica i componenti necessari e avvia il control plane e i nodi worker.

Deployment: Distribuzione dell'applicazione

Iniziare 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 Pod con una label specifica, 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 funzionano sulla porta 3000. Possono utilizzare tutti la stessa porta perché ogni Pod opera nel proprio spazio di rete isolato, quindi non ci sono conflitti 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 instrada 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 esternamente 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, iniziare elencando i Pod in esecuzione:

Se il file deployment.yaml specifica replicas: 2, due Pod dovrebbero apparire 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 richiede a Minikube di restituire l'URL in cui la tua applicazione è esposta. Minikube verifica 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?

bookConfigurazione e Avvio del Deployment Kubernetes

Scorri per mostrare il menu

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

Per iniziare, è necessario definire lo stato desiderato dell'applicazione utilizzando file YAML. Un file descriverà un Deployment, che gestisce aggiornamenti e scalabilità, mentre un altro definirà un Service, che espone l'applicazione alla rete e la rende accessibile agli utenti.

Note
Approfondimento

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 applicative.

Un Deployment garantisce che il numero desiderato di istanze dell'applicazione (Pod) sia sempre in esecuzione e semplifica il rilascio di aggiornamenti o il ripristino di 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 macchina. Scarica i componenti necessari e avvia il control plane e i nodi worker.

Deployment: Distribuzione dell'applicazione

Iniziare 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 Pod con una label specifica, 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 funzionano sulla porta 3000. Possono utilizzare tutti la stessa porta perché ogni Pod opera nel proprio spazio di rete isolato, quindi non ci sono conflitti 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 instrada 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 esternamente 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, iniziare elencando i Pod in esecuzione:

Se il file deployment.yaml specifica replicas: 2, due Pod dovrebbero apparire 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 richiede a Minikube di restituire l'URL in cui la tua applicazione è esposta. Minikube verifica 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