DevOps-bootcamp · Les

Deployments voor stateless apps

Gebruik Deployments om stateless applicaties te beheren, met ondersteuning voor rolling updates en rollbacks.

Les 1 van 411 stappen

Deployments voor stateless apps is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Maak kennis met Kubernetes-Deployments

Welkom bij een fundamenteel concept in Kubernetes: Deployments! Dit is de belangrijkste bron voor het beheren van stateless applicaties.

Zie een Deployment als een blauwdruk voor je applicatie. Hiermee geef je Kubernetes aan hoeveel exemplaren (replica’s) van je app actief moeten zijn en hoe deze zonder downtime moeten worden bijgewerkt.

Deployments voor stateless apps — illustratie 1

Verder dan Pods en ReplicaSets

Je hebt geleerd over Pods (de kleinste eenheid) en ReplicaSets (die een bepaald aantal Pods garanderen).

Een Deployment is gebaseerd op een ReplicaSet. Het biedt een abstractielaag op hoger niveau voor:

  • ReplicaSets maken en bijwerken.
  • Nieuwe versies van je applicatie uitrollen.
  • Terugdraaien naar vorige versies als er iets misgaat.

Hierdoor worden je applicaties veel eenvoudiger en veiliger te beheren.

In een Deployment-YAML-bestand

Net als andere Kubernetes-bronnen worden Deployments gedefinieerd met YAML. Bekijk de basisstructuur:

  • apiVersion: geeft de Kubernetes API-versie aan (bijvoorbeeld apps/v1).
  • kind: is voor een Deployment-bron altijd Deployment.
  • metadata: bevat informatie zoals de name van de Deployment en optionele labels.

Met deze velden kan Kubernetes je Deployments identificeren en ordenen.

Replica’s en template opgeven

Het belangrijkste onderdeel van een Deployment is de sectie spec. Hier definieer je:

  • replicas: het gewenste aantal identieke Pods voor je applicatie.
  • selector: hoe de Deployment de Pods vindt die hij beheert (met labels).
  • template: in feite een Pod-definitie die de containers, volumes enzovoort voor elke Pod beschrijft.

De Deployment gebruikt de template om nieuwe Pods te maken.

Onze Nginx-Deployment

Hier volgt een eenvoudig manifest voor een Deployment van een Nginx-webserver. Hiermee geef je Kubernetes de opdracht om drie Nginx-Pods actief te houden.

Probeer elk onderdeel te begrijpen!

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

Je Deployment maken

Zodra je het YAML-bestand van je Deployment hebt (bijvoorbeeld nginx-deployment.yaml), kun je de Deployment in je Kubernetes-cluster maken met de opdracht kubectl apply.

Kubernetes zorgt er vervolgens voor dat het gewenste aantal Pods wordt gemaakt en onderhouden.

kubectl apply -f nginx-deployment.yaml

Je kunt de status controleren met:

kubectl get deployments

Opschalen en afschalen

Heb je meer of minder exemplaren van je applicatie nodig? Met Deployments schaal je eenvoudig! Je kunt het veld replicas in je YAML aanpassen en opnieuw toepassen, of een directe opdracht gebruiken:

kubectl scale deployment nginx-deployment --replicas=5

Met deze opdracht geef je je Deployment direct de opdracht om twee extra Nginx-Pods te maken, zodat het totaal op vijf komt.

Updates zonder downtime

Een van de grootste voordelen van Deployments is de mogelijkheid om rolling updates uit te voeren. Wanneer je de Pod-template bijwerkt (bijvoorbeeld door de imageversie te wijzigen), schakelt Kubernetes niet alle oude Pods tegelijk uit.

In plaats daarvan vervangt Kubernetes de oude Pods geleidelijk door nieuwe, zodat je applicatie tijdens het hele updateproces beschikbaar blijft.

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

Eenvoudig terugdraaien

Een fout gemaakt in een update? Geen zorgen! Implementaties bewaren een geschiedenis van je revisies, zodat je eenvoudig kunt teruggaan naar een eerdere, stabiele versie.

Dit heet een rollback en het is een belangrijk vangnet voor implementaties.

kubectl rollout undo deployment/nginx-deployment

Je kunt de geschiedenis ook bekijken met kubectl rollout history deployment/nginx-deployment.

Tijd voor een implementatiequiz

Een ontwikkelaar werkt een Nginx Deployment bij van image nginx:1.14.2 naar nginx:1.16.1. Wat is het belangrijkste voordeel van het gebruik van een Kubernetes Deployment voor deze update?

Deployments: belangrijkste punten

Goed gedaan! Je hebt geleerd over Kubernetes Deployments, een krachtige resource voor het beheren van stateless applicaties.

  • Deployments beheren ReplicaSets, die op hun beurt Pods beheren.
  • Ze definiëren de gewenste toestand, waaronder het aantal replicas.
  • Belangrijke functies zijn eenvoudig schalen, rolling updates zonder downtime en eenvoudig terugdraaien naar eerdere versies.

Vervolgens bekijken we Services om je applicaties beschikbaar te maken!

Gratis beginnen

Leer DevOps-bootcamp met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
142
Lessen
568

Veelgestelde vragen

Is de les “Deployments voor stateless apps” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Deployments voor stateless apps”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Wat leer ik in “Deployments voor stateless apps”?

Gebruik Deployments om stateless applicaties te beheren, met ondersteuning voor rolling updates en rollbacks. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?

Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Deployments voor stateless apps”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?

Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Deployments voor stateless apps
  2. Services voor netwerktoegang
  3. ConfigMaps en Secrets
  4. Ingress en externe routing
← Terug naar DevOps-bootcamp