Förstå Deployments
Lär dig hur Deployments automatiserar hanteringen av Pods och ReplicaSets för tillståndslösa applikationer.
Förstå Deployments är en gratis lektion i Grunderna i Kubernetes på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Grunderna i Kubernetes, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Grunderna i Kubernetes innehåller totalt 4 lektioner.
Vad är Deployments?
Välkommen! I Kubernetes innebär hantering av applikationer att hantera deras Pods. Men det kan bli komplicerat att hantera enskilda Pods eller till och med ReplicaSets direkt.
En Deployment är ett objekt på högre nivå som förenklar hanteringen av tillståndslösa applikationer. Tänk på den som applikationens chef.
- Den definierar det önskade tillståndet för applikationen.
- Den ser till att tillståndet bibehålls även om Pods slutar fungera.
- Den automatiserar uppdateringar och återställningar.
Varför använda Deployments?
Deployments ger betydande fördelar för att köra applikationer tillförlitligt i Kubernetes:
- Automatiserad hantering: De hanterar skapande, skalning och borttagning av Pods.
- Självläkning: Om en Pod kraschar ersätter Deploymenten den automatiskt för att bibehålla önskat antal repliker.
- Deklarativa uppdateringar: Du beskriver det önskade nya tillståndet, och Deploymenten räknar ut hur det ska uppnås, till exempel genom att rulla ut nya versioner.
De är det rekommenderade sättet att hantera tillståndslösa applikationer.
Deploymentens centrala roll
I grunden hanterar en Deployment ReplicaSets. Ett ReplicaSets uppgift är att alltid säkerställa att ett angivet antal Pod-repliker körs.
En Deployment använder alltså ReplicaSets för att uppnå sitt mål: att säkerställa att applikationen har rätt antal friska Pods körande enligt din definition.
Denna abstraktion gör det mycket enklare att definiera och underhålla applikationens livscykel.
En Deployment-YAML:s uppbyggnad
Precis som de flesta Kubernetes-objekt definieras Deployments med YAML. Här är de viktigaste avsnitten som du vanligtvis hittar:
apiVersionochkind: Identifierar objekttypen (Deployment).metadata: Namn, etiketter med mera för själva Deploymenten.spec: Den centrala definitionen, som innehåller:replicas: Det önskade antalet Pods.selector: Hur Deploymenten hittar de Pods som den hanterar.template: Ritningen för de Pods som ska skapas.
Pod-mallen
Fältet template i en Deployments spec är mycket viktigt. Det är i praktiken en komplett Pod-definition.
Alla Pods som skapas av denna Deployment använder denna mall. Det innebär att du definierar:
- Vilka container-images som ska användas.
- Portar som ska exponeras.
- Miljövariabler.
- Resursbegäranden och begränsningar.
- Och mycket mer!
Ändringar i denna mall utlöser uppdateringar av applikationen.
Skapa en enkel Deployment
Nu definierar vi en Deployment för en enkel Nginx-webbserver. Vi vill ha tre repliker.
Observera att selector.matchLabels måste matcha template.metadata.labels. Detta talar om för Deploymenten vilka Pods den äger.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Tillämpa Deploymenten
För att skapa denna Deployment i ditt Kubernetes-kluster, till exempel Minikube, använder du kommandot kubectl apply. Spara YAML-koden ovan som nginx-deployment.yaml.
kubectl skapar Deployment-objektet. Deployment-controllern ser sedan objektet och vidtar åtgärder genom att skapa ett ReplicaSet, som i sin tur skapar de tre Nginx-Pods.
kubectl apply -f nginx-deployment.yamlGranska din Deployment
När Deploymenten har tillämpats kan du kontrollera statusen för den och de Pods som den hanterar:
kubectl get deployments: Visar din Deployment.kubectl get replicasets: Visar det ReplicaSet som Deploymenten skapade.kubectl get pods -l app=nginx: Visar de Pods som Deploymenten hanterar via sin etikettväljare.kubectl describe deployment my-nginx-deployment: Ger detaljerad information om Deploymenten, inklusive händelser.
kubectl get deployments
kubectl get pods -l app=nginx
kubectl describe deployment my-nginx-deploymentBibehålla önskat tillstånd
En av Deployments mest kraftfulla funktioner är möjligheten att bibehålla det önskade tillståndet. Om du definierar replicas: 3 ser Deploymenten till att tre Pods alltid körs.
Prova att ta bort en av Nginx-Pods manuellt (kubectl delete pod <pod-name>). Du kommer att se att Deploymenten snabbt skapar en ny som ersättning! Detta är självläkning i praktiken.
Snabbtest
Vilken typ av applikation används en Deployment främst för att hantera?
Sammanfattning: förstå Deployments
Bra jobbat! Du har tagit dina första steg med Kubernetes Deployments.
- Deployments är objekt på hög nivå för hantering av tillståndslösa applikationer.
- De automatiserar skapande, skalning och självläkning av Pods genom att hantera ReplicaSets.
- Du definierar en Deployment med ett YAML-manifest, där du anger önskat antal
replicasoch entemplateför Pods. kubectl applyskapar Deploymenten, ochkubectl get/describehjälper dig att övervaka den.
Nästa steg är att gå djupare in på ReplicaSets och hur de garanterar det önskade antalet Pods!
Lär dig Grunderna i Kubernetes med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Förstå Deployments” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Grunderna i Kubernetes, inklusive ”Förstå Deployments”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Grunderna i Kubernetes innehåller totalt 4 lektioner.
Vad lär jag mig i ”Förstå Deployments”?
Lär dig hur Deployments automatiserar hanteringen av Pods och ReplicaSets för tillståndslösa applikationer. Ni övar på Grunderna i Kubernetes med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Grunderna i Kubernetes?
Du behöver inga förkunskaper. Utbildningen i Grunderna i Kubernetes på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Förstå Deployments”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Grunderna i Kubernetes-lektionen?
Ja. Varje Grunderna i Kubernetes-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Förstå Deployments
- Skala applikationer med ReplicaSets
- Rullande uppdateringar och återställningar
- Distributionsstrategier: blue-green och canary