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: nginx

ReplicaSet

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?