Grundlæggende Docker og DevOps · Lektion

Deployments til stateless-apps

Brug Deployments til at administrere stateless-applikationer med mulighed for løbende opdateringer og tilbagerulninger.

Lektion 1 af 411 trin

Deployments til stateless-apps er en gratis Grundlæggende Docker og DevOps-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende Docker og DevOps, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Mød Kubernetes-implementeringer

Velkommen til et grundlæggende koncept i Kubernetes: Deployments! De er din foretrukne ressource til administration af tilstandsløse applikationer.

Forestil dig en Deployment som en plan for din applikation. Den fortæller Kubernetes, hvor mange kopier (replikater) af din applikation du vil have kørende, og hvordan de skal opdateres uden nedetid.

Deployments til stateless-apps — illustration 1

Ud over Pods og ReplicaSets

Du har lært om Pods (den mindste enhed) og ReplicaSets (som sikrer et bestemt antal Pods).

En Deployment ligger oven på et ReplicaSet. Den giver en abstraktion på højere niveau til:

  • Oprettelse og opdatering af ReplicaSets.
  • Udrulning af nye versioner af din applikation.
  • Tilbageførsel til tidligere versioner, hvis noget går galt.

Det gør administrationen af dine applikationer meget nemmere og sikrere.

Indholdet i en Deployment-YAML

Ligesom andre Kubernetes-ressourcer defineres Deployments ved hjælp af YAML. Lad os se på den grundlæggende struktur:

  • apiVersion: Angiver Kubernetes-API-versionen (for eksempel apps/v1).
  • kind: Er altid Deployment for en Deployment-ressource.
  • metadata: Indeholder oplysninger som Deployment'ens name og valgfri labels.

Disse felter hjælper Kubernetes med at identificere og organisere dine deployments.

Angivelse af replikater og skabelon

Hjertet i en Deployment er dens spec-sektion. Her definerer du:

  • replicas: Det ønskede antal identiske Pods til din applikation.
  • selector: Hvordan Deployment'en finder de Pods, den administrerer (ved hjælp af labels).
  • template: Dette er grundlæggende en Pod-definition, der beskriver containere, volumener og så videre for hver Pod.

template er det, Deployment'en bruger til at oprette nye Pods.

Vores Nginx-Deployment

Her er et simpelt Deployment-manifest til en Nginx-webserver. Det fortæller Kubernetes, at 3 Nginx-Pods skal holdes kørende.

Prøv at forstå hver del!

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

Oprettelse af din Deployment

Når du har din Deployment-YAML-fil (for eksempel nginx-deployment.yaml), kan du oprette Deployment'en i din Kubernetes-klynge ved hjælp af kommandoen kubectl apply.

Kubernetes sørger derefter for, at det ønskede antal Pods oprettes og vedligeholdes.

kubectl apply -f nginx-deployment.yaml

Du kan kontrollere status med:

kubectl get deployments

Opskalering og nedskalering

Har du brug for flere eller færre instanser af din applikation? Deployments gør skalering nemt! Du kan justere feltet replicas i din YAML og anvende den igen eller bruge en direkte kommando:

kubectl scale deployment nginx-deployment --replicas=5

Denne kommando fortæller straks din Deployment, at den skal oprette 2 ekstra Nginx-Pods, så det samlede antal bliver 5.

Opdateringer uden nedetid

En af de største fordele ved Deployments er muligheden for at udføre løbende opdateringer. Når du opdaterer Pod-skabelonen (for eksempel ændrer image-versionen), lukker Kubernetes ikke alle gamle Pods ned på én gang.

I stedet erstatter den gradvist gamle Pods med nye, så din applikation forbliver tilgængelig under hele opdateringen.

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

Nem tilbagerulning

Har du lavet en fejl i en opdatering? Bare rolig! Udrulninger gemmer en historik over dine revisioner, så du nemt kan vende tilbage til en tidligere, stabil version.

Det kaldes en tilbagerulning og er et vigtigt sikkerhedsnet for udrulninger.

kubectl rollout undo deployment/nginx-deployment

Du kan også kontrollere historikken med kubectl rollout history deployment/nginx-deployment.

Tid til quiz om udrulninger

En udvikler opdaterer en Nginx-udrulning fra imaget nginx:1.14.2 til nginx:1.16.1. Hvad er den primære fordel ved at bruge en Kubernetes-udrulning til denne opdatering?

Udrulninger: Vigtigste pointer

Godt gået! Du har lært om Kubernetes-udrulninger, en effektiv ressource til administration af dine tilstandsløse applikationer.

  • Udrulninger administrerer ReplicaSets, som igen administrerer Pods.
  • De definerer den ønskede tilstand, herunder antallet af replicas.
  • Vigtige funktioner omfatter nem skalering, løbende opdateringer uden nedetid og enkle tilbagerulninger til tidligere versioner.

Derefter udforsker vi Services, som gør dine applikationer tilgængelige!

Gratis at komme i gang

Lær Grundlæggende Docker og DevOps med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Deployments til stateless-apps” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende Docker og DevOps, inklusive “Deployments til stateless-apps”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Deployments til stateless-apps”?

Brug Deployments til at administrere stateless-applikationer med mulighed for løbende opdateringer og tilbagerulninger. Du øver dig i Grundlæggende Docker og DevOps med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlæggende Docker og DevOps?

Der kræves ingen tidligere erfaring. Grundlæggende Docker og DevOps på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Deployments til stateless-apps”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlæggende Docker og DevOps-lektion?

Ja. Alle Grundlæggende Docker og DevOps-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Deployments til stateless-apps
  2. Services til netværksadgang
  3. ConfigMaps og Secrets
  4. Ingress og ekstern routing
← Tilbage til Grundlæggende Docker og DevOps