0Pricing
Docker & DevOps Fundamentals · Lezione

Deployment per app stateless

Utilizzi i Deployment per gestire applicazioni stateless, abilitando gli aggiornamenti progressivi e i rollback.

Deployment per app stateless è una lezione Docker & DevOps Fundamentals gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Docker & DevOps Fundamentals, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Docker & DevOps Fundamentals include 4 lezioni in totale.

Scopra i Deployment Kubernetes

Benvenuto a un concetto fondamentale di Kubernetes: i Deployment! Sono la risorsa principale per gestire le applicazioni stateless.

Consideri un Deployment come il progetto della sua applicazione. Indica a Kubernetes quante copie (repliche) dell'applicazione devono essere in esecuzione e come aggiornarle senza tempi di inattività.

Deployment per app stateless — illustrazione 1

Oltre i Pod e i ReplicaSet

Ha imparato a conoscere i Pod (l'unità più piccola) e i ReplicaSet (che garantiscono un determinato numero di Pod).

Un Deployment si basa su un ReplicaSet. Fornisce un'astrazione di livello superiore per:

  • Creare e aggiornare i ReplicaSet.
  • Distribuire nuove versioni dell'applicazione.
  • Tornare alle versioni precedenti se qualcosa va storto.

In questo modo, gestire le applicazioni diventa molto più semplice e sicuro.

Struttura di un Deployment YAML

Come le altre risorse Kubernetes, i Deployment vengono definiti usando YAML. Vediamo la struttura di base:

  • apiVersion: specifica la versione dell'API di Kubernetes (ad esempio, apps/v1).
  • kind: per una risorsa Deployment è sempre Deployment.
  • metadata: contiene informazioni come il name del Deployment e le labels opzionali.

Questi campi aiutano Kubernetes a identificare e organizzare i deployment.

Specificare repliche e template

Il cuore di un Deployment è la sezione spec. Qui si definiscono:

  • replicas: il numero desiderato di Pod identici per l'applicazione.
  • selector: il modo in cui il Deployment individua i Pod che gestisce, usando le label.
  • template: essenzialmente una definizione di Pod, che descrive i container, i volumi e così via per ogni Pod.

Il template è ciò che il Deployment usa per creare nuovi Pod.

Il nostro Deployment Nginx

Ecco un semplice manifest Deployment per un server web Nginx. Indica a Kubernetes di mantenere in esecuzione 3 Pod Nginx.

Provi a comprendere ogni parte!

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

Creazione del Deployment

Una volta creato il file YAML del Deployment (ad esempio, nginx-deployment.yaml), può creare il Deployment nel cluster Kubernetes usando il comando kubectl apply.

Kubernetes garantirà quindi che venga creato e mantenuto il numero desiderato di Pod.

kubectl apply -f nginx-deployment.yaml

Può controllarne lo stato con:

kubectl get deployments

Aumento e riduzione della scala

Ha bisogno di più o meno istanze dell'applicazione? I Deployment semplificano lo scaling! Può modificare il campo replicas nel file YAML e applicarlo di nuovo, oppure usare un comando diretto:

kubectl scale deployment nginx-deployment --replicas=5

Questo comando indicherà immediatamente al Deployment di creare altri 2 Pod Nginx, portando il totale a 5.

Aggiornamenti senza tempi di inattività

Uno dei principali vantaggi dei Deployment è la possibilità di eseguire rolling update. Quando aggiorna il template del Pod (ad esempio, modificando la versione dell'immagine), Kubernetes non arresta tutti i Pod precedenti contemporaneamente.

Li sostituisce gradualmente con Pod nuovi, assicurando che l'applicazione rimanga disponibile durante l'intero processo di aggiornamento.

kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1

Ripristino semplificato

Avete commesso un errore in un aggiornamento? Nessun problema! I deployment conservano una cronologia delle revisioni, consentendo di tornare facilmente a una versione precedente e stabile.

Questa operazione si chiama rollback ed è una rete di sicurezza fondamentale per i deployment.

kubectl rollout undo deployment/nginx-deployment

Potete anche controllare la cronologia con kubectl rollout history deployment/nginx-deployment.

È il momento del quiz sui deployment

Un developer aggiorna un Deployment Nginx dall'immagine nginx:1.14.2 a nginx:1.16.1. Qual è il principale vantaggio dell'utilizzo di un Deployment Kubernetes per questo aggiornamento?

Deployment: concetti chiave

Ottimo lavoro! Avete imparato a conoscere i Deployment Kubernetes, una potente risorsa per gestire le applicazioni stateless.

  • I Deployment gestiscono i ReplicaSet, che a loro volta gestiscono i Pod.
  • Definiscono lo stato desiderato, incluso il numero di replicas.
  • Le funzionalità principali includono un facile ridimensionamento, rolling update senza downtime e semplici rollback alle versioni precedenti.

Ora esploreremo i Service per rendere accessibili le vostre applicazioni!

Domande Frequenti

La lezione «Deployment per app stateless» è gratuita?

Sì — il testo completo di «Deployment per app stateless» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Docker & DevOps Fundamentals, passa a CoddyKit PRO. Il corso Docker & DevOps Fundamentals include 4 lezioni in totale.

Cosa imparerò in «Deployment per app stateless»?

Utilizzi i Deployment per gestire applicazioni stateless, abilitando gli aggiornamenti progressivi e i rollback. Eserciti Docker & DevOps Fundamentals con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Docker & DevOps Fundamentals?

Non è richiesta alcuna esperienza precedente. Docker & DevOps Fundamentals su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Deployment per app stateless»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Docker & DevOps Fundamentals?

Sì. Ogni lezione Docker & DevOps Fundamentals include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Deployment per app stateless
  2. Service per l'accesso di rete
  3. ConfigMap e Secret
  4. Ingress e routing esterno
← Torna a Docker & DevOps Fundamentals