Introductie
Waarom VM's gebruiken?
Veiligheid
Als één gehacked wordt is het lastiger om verder te geraken.
Meerdere services op één PC draaien.
Als één VM crasht gaat niet alles plat.
VMs vs Containers:
VM's: Virtualizeren een hele machine, insclusief hardware. Draaien daarboven nog een OS.
Containers: Virtualizeren alleen bijvoorbeeld een service / applicatie.
Containers zijn dus meer lightweight dan VM's.
Podman vs Docker
Allebei containertechnologie.
Voordelen van Podman:
Daemonless
Geen aparte daemon nodig om te runnen: meer lightweight en secure
Geen single point of failure
Rootles container
Docker runt als root
Is compatibel met docker
Podman biedt de mogelijkheid om containers samen te laten werken
kan bijvoorbeeld 2 of meer containers een netwerk laten delen
Integratie met systemd
containers zijn services (en dus geen daemon nodig)
Podman
Image: Voorgemaakte applicatie.
Voorbeeld: nginx
Container image downloaden:
Images oplijsten:
Container met webserver starten:
Webserver zou nu moeten draaien.
Webserver stoppen:
Webserver starten:
Kubernetes
Veel containers tegelijk beheren is lastig.
Je kan dit gemakkelijker maken via:
Kubernetes
Wordt in de industrie gebruikt
Docker Swarm
Kubernetes wordt gebruikt voor het automatiseren van deployment, scaling en management van containers.
Kubernetes:
Runs en manages containers over verschillende machines.
Zet automatisch containers aan of uit afhankelijk van de load.
Herstart en vervangt kapotte containers.
Doet aan load balancing, deelt het traffic over de containers.
Updates de containers zonder downtime.
Belangrijke concepten:
Pods: een groep van één of meer containers.
Nodes: Machines waar pods op draaien.
Clusters: Groepen van nodes die samen beheerd worden.
Services: Zorgen dat pods netwerk resources hebben.
Deployments: Beheren hoe je containers worden deployed of geüpdatet.
Legacy applicaties vs microservices
Vroeger moest een applicatie / service plat gelegd worden voor een update omdat de applicatie / service één groot executable is.
Tegenwoordig bestaat een applicatie / service uit meerdere kleine delen genaamd microservices. Zo moet maar een klein deel tijdelijk plat gelegd worden voor een update.