Resources
Pods
Een pod is de kleinste eenheid binnen Kubernetes. Een pod bevat namelijk één of meerdere containers binnen dezelfde netwerkomgeving en dezelfde opslag. Hierdoor kan Kubernetes containers groeperen en beheren. Meestal draait er één container per pod, maar in geval van bijvoorbeeld een side-car kunnen er meerdere containers bestaan binnen een pod.
Resources in Kubernetes worden aangemaakt via YAML bestanden, dit is een format waarin specifiacties zoals container image, poorten en volumes worden ingesteld. Het YAML bestand wordt gebruik om de pod op een declaratieve manier te maken en te beheren.
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginxReplicaSet
Een ReplicaSet zorgt ervoor dat er tegelijkertijd een aantal replica's van een pod bestaan in het cluster. Als een pod crashed, of wordt verwijders, maakt de replicaset automatisch een nieuwe aan om zo te blijven draaien. ReplicaSets worden hierom ook gebruik om een hoge uptime te garanderen.
apiVersion: v1
kind: ReplicaSet
metadata:
name: myapp-replicaset
labels:
app: myapp
type: front-end
spec:
template
metadata:
name: myapp-pod
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-controller
image: nginx
replicas: 3
selector:
matchLabels:
type: front-end
Deployment
Een Deployment is een object dat gebruikmaakt van een ReplicaSet om Pods te beheren. Het biedt extra functionaliteiten zoals het uitvoeren van rolling updates, het herstellen van fouten en versiebeheer. Deployments worden vaak gebruikt om applicaties op een gestructureerde en beheersbare manier in te zetten.
Deployment strategies
Recreate
De slechtste manier van een update uitdraaien is de recreate strategie, dit is wanneer alle pods tegelijkertijd worden afgebouwd, en ook tegelijk weer worden opgezet. Dit zorgt namelijk voor een downtime.
Rolling update
Een rolling update is de default deployment strategie van kubernetes. Een rolling update zorgt ervoor dat een nieuwe versie van een applicatie geleidelijk wordt uitgerold zonder downtime. Oude Pods worden gelijdelijk vervangen met nieuwe Pods, terwijl het cluster blijft werken. Het aantal gelijktijdige updates kan worden gecontroleerd via parameters zoals maxUnavailable en maxSurge.
Commands
Om de huidige deployments in te kunnen zien kan het volgende commando worden gebruikt:
Om een update toe te passen kan één van de volgende commando's gebruikt worden:
Om de status van een update te zien kunnen de volgende commando's gebruikt worden:
Last updated
Was this helpful?