Grunderna i Kubernetes · Lektion

Förstå Deployments

Lär dig hur Deployments automatiserar hanteringen av Pods och ReplicaSets för tillståndslösa applikationer.

Lektion 1 av 411 steg

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:

  • apiVersion och kind: 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: 80

Tillä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.yaml

Granska 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-deployment

Bibehå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 replicas och en template för Pods.
  • kubectl apply skapar Deploymenten, och kubectl get/describe hjälper dig att övervaka den.

Nästa steg är att gå djupare in på ReplicaSets och hur de garanterar det önskade antalet Pods!

Gratis att börja

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

  1. Förstå Deployments
  2. Skala applikationer med ReplicaSets
  3. Rullande uppdateringar och återställningar
  4. Distributionsstrategier: blue-green och canary
← Tillbaka till Grunderna i Kubernetes