Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Kubernetes-implementatie: Installatie en Lancering | CI/CD & Automatisering
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Introductie tot DevOps

bookKubernetes-implementatie: Installatie en Lancering

Nu uw applicatie soepel draait binnen containers, is de volgende uitdaging het orkestreren en beheren van deze containers op schaal. Dit is waar Kubernetes van pas komt.

Om te beginnen definieert u de gewenste status van uw applicatie met behulp van YAML-bestanden. Eén bestand beschrijft een Deployment, die updates en schaalbaarheid beheert, terwijl een ander bestand een Service definieert, die uw applicatie aan het netwerk blootstelt en toegankelijk maakt voor gebruikers.

Note
Meer leren

YAML (YAML Ain't Markup Language) is een voor mensen leesbaar formaat voor configuratiebestanden. Het wordt vaak gebruikt om infrastructuur te beschrijven, processen te automatiseren en applicatie-instellingen op te slaan.

Een Deployment zorgt ervoor dat het gewenste aantal applicatie-instanties (Pods) altijd actief is en maakt het eenvoudig om updates uit te rollen of terug te draaien naar eerdere versies. Een Service stelt deze containers bloot aan het netwerk en verdeelt het inkomende verkeer tussen hen.

Minikube uitvoeren

Note
Definitie

Minikube is een lichtgewicht hulpmiddel waarmee een lokale Kubernetes-cluster op uw computer kan worden uitgevoerd. Het creëert een virtuele omgeving waarin u Kubernetes kunt testen en verkennen zonder cloudservices nodig te hebben.

Na het installeren van Minikube en het toevoegen aan uw systeem-PATH, opent u PowerShell (of een andere gewenste terminal) en voert u het volgende uit:

Met dit commando wordt gecontroleerd of Minikube beschikbaar is en wordt de geïnstalleerde versie weergegeven.

Nadat je hebt bevestigd dat Minikube is geïnstalleerd, start je je lokale Kubernetes-cluster met:

Dit commando maakt en start een lokaal Kubernetes-cluster op je machine. Het downloadt de benodigde componenten en start het control plane en de worker nodes.

Deployment: Applicatie-uitrol

Begin met het aanmaken van het bestand deployment.yaml. Een Deployment in Kubernetes zorgt ervoor dat een specifiek aantal Pods (applicatie-instanties) altijd actief zijn en zonder downtime kunnen worden bijgewerkt of teruggedraaid.

deployment.yaml

deployment.yaml

copy

In dit manifest specificeert de parameter replicas hoeveel Pod-instanties gelijktijdig moeten draaien — in dit geval twee. Om te bepalen welke Pods beheerd moeten worden, gebruikt de Deployment een combinatie van selector en labels: de selector fungeert als filter om Pods met een specifiek label te vinden, en het Pod-sjabloon definieert dat label. Wanneer de labels overeenkomen, beschouwt de Deployment deze Pods als zijn eigen en zorgt voor het behouden van hun aantal, het bijwerken ervan en het opnieuw opstarten indien nodig.

Alle Pods draaien op poort 3000. Ze kunnen allemaal dezelfde poort gebruiken omdat elke Pod in zijn eigen geïsoleerde netwerkruimte opereert, waardoor er geen conflict tussen hen ontstaat.

Service: Netwerktoegang tot de applicatie

Zodra de Deployment is opgezet, is een Service nodig om netwerktoegang en load balancing tussen Pods te bieden. Maak het bestand service.yaml aan:

service.yaml

service.yaml

copy

Dit manifest definieert een Service genaamd my-app-service die verkeer doorstuurt naar Pods met het label app: my-app. Extern luistert deze op poort 80 en stuurt verzoeken door naar poort 3000 binnen de Pods.

Het type LoadBalancer is belangrijk omdat het de applicatie extern beschikbaar maakt en het verkeer over de Pods verdeelt.

Applicatie implementeren in Kubernetes

Zodra de YAML-bestanden gereed zijn, kunnen deze op het cluster worden toegepast:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Het commando kubectl apply -f maakt resources aan of werkt deze bij in het cluster op basis van de inhoud van het YAML-bestand.

Status controleren

Na het toepassen van de configuratiebestanden is het belangrijk te verifiëren dat alles naar verwachting is uitgerold. Omdat Pods en Services even nodig hebben om te starten, begin met het weergeven van de actieve Pods:

Als het bestand deployment.yaml replicas: 2 specificeert, zouden twee Pods in de uitvoer moeten verschijnen.

Om te bevestigen dat de Service actief en bereikbaar is:

Hiermee worden het IP-adres van de Service en de poorten weergegeven waarmee de applicatie toegankelijk is.

Verkrijg de Service-URL

Voer de volgende opdracht uit in PowerShell of je terminal om toegang te krijgen tot je applicatie:

Deze opdracht vraagt Minikube om de URL te retourneren waarop je applicatie beschikbaar is. Minikube controleert de Service die je hebt aangemaakt (my-app-service) en geeft een link die je in je browser kunt openen.

Schalen van de applicatie

Kubernetes maakt het eenvoudig om het aantal actieve Pods aan te passen zonder de applicatie te stoppen.

Bijvoorbeeld, om van 2 naar 4 replica's te schalen:

Het opnieuw uitvoeren van kubectl get pods toont nu vier actieve Pods.

Kubernetes biedt krachtige tools voor het beheren van gecontaineriseerde applicaties op elke schaal. Een Deployment zorgt ervoor dat het juiste aantal Pods actief is en kan eenvoudig worden bijgewerkt of teruggedraaid. Een Service stelt de applicatie bloot aan het netwerk en verdeelt het inkomende verkeer. YAML configuratiebestanden maken de setup duidelijk en leesbaar, terwijl kubectl-commando's het mogelijk maken deze configuraties in realtime toe te passen en te beheren.

1. Wat is het belangrijkste doel van een Deployment in Kubernetes?

2. Waarom kunnen meerdere Pods op hetzelfde poortnummer (bijvoorbeeld 3000) draaien zonder conflicten?

question mark

Wat is het belangrijkste doel van een Deployment in Kubernetes?

Select the correct answer

question mark

Waarom kunnen meerdere Pods op hetzelfde poortnummer (bijvoorbeeld 3000) draaien zonder conflicten?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 9

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

What should I do if my pods are not starting as expected?

How can I update my application without downtime using Kubernetes?

Can you explain the difference between a Deployment and a Service in Kubernetes?

bookKubernetes-implementatie: Installatie en Lancering

Veeg om het menu te tonen

Nu uw applicatie soepel draait binnen containers, is de volgende uitdaging het orkestreren en beheren van deze containers op schaal. Dit is waar Kubernetes van pas komt.

Om te beginnen definieert u de gewenste status van uw applicatie met behulp van YAML-bestanden. Eén bestand beschrijft een Deployment, die updates en schaalbaarheid beheert, terwijl een ander bestand een Service definieert, die uw applicatie aan het netwerk blootstelt en toegankelijk maakt voor gebruikers.

Note
Meer leren

YAML (YAML Ain't Markup Language) is een voor mensen leesbaar formaat voor configuratiebestanden. Het wordt vaak gebruikt om infrastructuur te beschrijven, processen te automatiseren en applicatie-instellingen op te slaan.

Een Deployment zorgt ervoor dat het gewenste aantal applicatie-instanties (Pods) altijd actief is en maakt het eenvoudig om updates uit te rollen of terug te draaien naar eerdere versies. Een Service stelt deze containers bloot aan het netwerk en verdeelt het inkomende verkeer tussen hen.

Minikube uitvoeren

Note
Definitie

Minikube is een lichtgewicht hulpmiddel waarmee een lokale Kubernetes-cluster op uw computer kan worden uitgevoerd. Het creëert een virtuele omgeving waarin u Kubernetes kunt testen en verkennen zonder cloudservices nodig te hebben.

Na het installeren van Minikube en het toevoegen aan uw systeem-PATH, opent u PowerShell (of een andere gewenste terminal) en voert u het volgende uit:

Met dit commando wordt gecontroleerd of Minikube beschikbaar is en wordt de geïnstalleerde versie weergegeven.

Nadat je hebt bevestigd dat Minikube is geïnstalleerd, start je je lokale Kubernetes-cluster met:

Dit commando maakt en start een lokaal Kubernetes-cluster op je machine. Het downloadt de benodigde componenten en start het control plane en de worker nodes.

Deployment: Applicatie-uitrol

Begin met het aanmaken van het bestand deployment.yaml. Een Deployment in Kubernetes zorgt ervoor dat een specifiek aantal Pods (applicatie-instanties) altijd actief zijn en zonder downtime kunnen worden bijgewerkt of teruggedraaid.

deployment.yaml

deployment.yaml

copy

In dit manifest specificeert de parameter replicas hoeveel Pod-instanties gelijktijdig moeten draaien — in dit geval twee. Om te bepalen welke Pods beheerd moeten worden, gebruikt de Deployment een combinatie van selector en labels: de selector fungeert als filter om Pods met een specifiek label te vinden, en het Pod-sjabloon definieert dat label. Wanneer de labels overeenkomen, beschouwt de Deployment deze Pods als zijn eigen en zorgt voor het behouden van hun aantal, het bijwerken ervan en het opnieuw opstarten indien nodig.

Alle Pods draaien op poort 3000. Ze kunnen allemaal dezelfde poort gebruiken omdat elke Pod in zijn eigen geïsoleerde netwerkruimte opereert, waardoor er geen conflict tussen hen ontstaat.

Service: Netwerktoegang tot de applicatie

Zodra de Deployment is opgezet, is een Service nodig om netwerktoegang en load balancing tussen Pods te bieden. Maak het bestand service.yaml aan:

service.yaml

service.yaml

copy

Dit manifest definieert een Service genaamd my-app-service die verkeer doorstuurt naar Pods met het label app: my-app. Extern luistert deze op poort 80 en stuurt verzoeken door naar poort 3000 binnen de Pods.

Het type LoadBalancer is belangrijk omdat het de applicatie extern beschikbaar maakt en het verkeer over de Pods verdeelt.

Applicatie implementeren in Kubernetes

Zodra de YAML-bestanden gereed zijn, kunnen deze op het cluster worden toegepast:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Het commando kubectl apply -f maakt resources aan of werkt deze bij in het cluster op basis van de inhoud van het YAML-bestand.

Status controleren

Na het toepassen van de configuratiebestanden is het belangrijk te verifiëren dat alles naar verwachting is uitgerold. Omdat Pods en Services even nodig hebben om te starten, begin met het weergeven van de actieve Pods:

Als het bestand deployment.yaml replicas: 2 specificeert, zouden twee Pods in de uitvoer moeten verschijnen.

Om te bevestigen dat de Service actief en bereikbaar is:

Hiermee worden het IP-adres van de Service en de poorten weergegeven waarmee de applicatie toegankelijk is.

Verkrijg de Service-URL

Voer de volgende opdracht uit in PowerShell of je terminal om toegang te krijgen tot je applicatie:

Deze opdracht vraagt Minikube om de URL te retourneren waarop je applicatie beschikbaar is. Minikube controleert de Service die je hebt aangemaakt (my-app-service) en geeft een link die je in je browser kunt openen.

Schalen van de applicatie

Kubernetes maakt het eenvoudig om het aantal actieve Pods aan te passen zonder de applicatie te stoppen.

Bijvoorbeeld, om van 2 naar 4 replica's te schalen:

Het opnieuw uitvoeren van kubectl get pods toont nu vier actieve Pods.

Kubernetes biedt krachtige tools voor het beheren van gecontaineriseerde applicaties op elke schaal. Een Deployment zorgt ervoor dat het juiste aantal Pods actief is en kan eenvoudig worden bijgewerkt of teruggedraaid. Een Service stelt de applicatie bloot aan het netwerk en verdeelt het inkomende verkeer. YAML configuratiebestanden maken de setup duidelijk en leesbaar, terwijl kubectl-commando's het mogelijk maken deze configuraties in realtime toe te passen en te beheren.

1. Wat is het belangrijkste doel van een Deployment in Kubernetes?

2. Waarom kunnen meerdere Pods op hetzelfde poortnummer (bijvoorbeeld 3000) draaien zonder conflicten?

question mark

Wat is het belangrijkste doel van een Deployment in Kubernetes?

Select the correct answer

question mark

Waarom kunnen meerdere Pods op hetzelfde poortnummer (bijvoorbeeld 3000) draaien zonder conflicten?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 9
some-alt