Creare distribuzioni
Si applica a: AKS su Azure Local 22H2, AKS su Windows Server
Questo articolo offre una panoramica delle distribuzioni di Kubernetes e descrive come creare e aggiornare queste distribuzioni nel servizio Azure Kubernetes abilitato da Azure Arc.
Panoramica delle distribuzioni kubernetes
Una distribuzione fa riferimento a un oggetto Kubernetes che gestisce le prestazioni e specifica il comportamento desiderato di un pod. Specifica il ciclo di vita dell'applicazione, inclusi i pod assegnati all'applicazione. Una distribuzione consente di comunicare lo stato desiderato per l'applicazione e il controller funziona per modificare lo stato attuale nello stato desiderato.
Le distribuzioni automatizzano il processo per avviare le istanze dei pod e assicurarsi che vengano eseguite come definito in tutti i nodi all'interno del cluster. Gli amministratori e i professionisti IT usano le distribuzioni per comunicare ciò che vogliono da un'applicazione e quindi Kubernetes esegue tutti i passaggi necessari per creare lo stato desiderato dell'applicazione.
Mentre le distribuzioni definiscono la modalità di esecuzione delle applicazioni, non garantiscono la posizione delle applicazioni all'interno del cluster. Ad esempio, se l'applicazione richiede un'istanza di un pod in ogni nodo, si vuole usare un oggetto DaemonSet. Per le applicazioni con stato, un oggetto StatefulSet fornisce identificatori di rete univoci, archiviazione permanente e distribuzione/ridimensionamento ordinati.
L'oggetto di distribuzione Kubernetes consente di:
- Distribuire un set di repliche o un pod.
- Aumentare o ridurre il numero di istanze di un'applicazione.
- Aggiornare ogni istanza in esecuzione di un'applicazione.
- Eseguire il rollback di tutte le istanze in esecuzione di un'applicazione in un'altra versione.
- Sospendere o continuare una distribuzione.
Per altre informazioni, vedere Distribuzioni di Kubernetes.
Creare una distribuzione
Per creare una distribuzione, è possibile usare i kubectl apply
comandi o kubectl create
. Poiché il numero richiesto di pod viene mantenuto e monitorato, vengono eseguiti e disponibili dopo la creazione della distribuzione. Se un pod ha esito negativo, Kubernetes esegue immediatamente l'rollout di una replica del pod in modo che venga eseguito nel cluster.
L'esempio seguente descrive le funzionalità di un file manifesto della distribuzione in formato YAML:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
strategy:
type: Recreate
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
Per visualizzare la distribuzione, il set di repliche e i pod, eseguire il comando seguente:
kubectl get deployment, replicaset, pod
Aggiornamento di una distribuzione
Il vantaggio principale delle distribuzioni è la possibilità di aggiornare automaticamente il programma Kubernetes. Senza distribuzioni, è necessario terminare manualmente tutti i pod precedenti, avviare nuove versioni dei pod ed eseguire un controllo per verificare se si verificano problemi durante la creazione di pod. È possibile eseguire kubectl describe deployment
per visualizzare l'ordine in cui i pod sono stati portati e rimossi.
Le distribuzioni automatizzano il processo di aggiornamento, in quanto è sufficiente aggiornare il modello di pod o lo stato desiderato. La distribuzione modifica lo stato del programma in background con azioni, ad esempio la creazione di nuovi pod o l'allocazione di più risorse, fino a quando non è stato eseguito l'aggiornamento scelto.
In caso di problemi nella distribuzione, Kubernetes esegue automaticamente il rollback alla versione precedente. È anche possibile eseguire il rollback in modo esplicito a una versione specifica usando il kubectl rollout undo
comando oppure è possibile usare per kubectl rollout pause
interrompere temporaneamente una distribuzione.
Strategie per l'aggiornamento delle distribuzioni
Kubernetes offre diverse strategie di distribuzione, in modo da poter eseguire l'aggiornamento in vari modi per soddisfare le esigenze dell'ambiente. Le tre strategie di aggiornamento più comuni sono:
- Aggiornamento in sequenza: questo aggiornamento è un processo graduale che consente di aggiornare il sistema Kubernetes con solo un effetto minore sulle prestazioni e senza tempi di inattività. Riduce al minimo i tempi di inattività al costo della velocità di aggiornamento.
- Ricreazione: questa strategia è un processo all-or-nothing che consente di aggiornare tutti gli aspetti del sistema contemporaneamente con un breve periodo di inattività. Viene aggiornato rapidamente, ma causa tempi di inattività.
- Canary: questa strategia è un processo di aggiornamento parziale che consente di testare la nuova versione del programma su utenti reali senza impegno per un'implementazione completa. Viene aggiornato rapidamente per alcuni utenti selezionati con un'implementazione completa in un secondo momento.