Kubernetes Ressourcen

Pods

Ein Pod in Kubernetes ist ein container mit der Instanz der Applikation welche wir ausführen wollen, in einigen fällen beinhaltet ein Pod zusätzlich zum Applikationscontainer auch noch ein oder mehrere Helper Container, welche weitere aufgaben im selben Pod ausführen. Alle Container in einem Pod haben den selben storage und netzwerkspace.

Example YAML:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx

Replica Controller

Der Replikations Kontroller ist ein Kontroller, welcher die Anzahl von Applikations instanzen im Kubernetes cluster managed. In einem ReplicaController wird der Pod als Template hinterlegt und anschliessend deployed.

Beseispiels YAML:

apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx-rc
  labels:
    app: nginx
    type: webserver
spec:
  template:
    metadata:
      name: nginx-pod
      labels:
        app: nginx
        type: webserver
    spec:
      containers:
      - name: nginx-container
        image: nginx
  replicas: 3

Replica Set

Ein Replica Set ist ähnlich wie ein Replica Controller, jedoch managed das Replica Set bereits erstellte Pods und erstellt wenn nötig neue wohingegen der Replica Controller für neue Pods genutzt wird. Kurz gesagt, das Replica Set kann bereits existierende Ressourcen Managen, dies geschieht über ein selector field.

Beispiels YAML:

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx-replicaset
  labels:
    app: nginx
    type: webserver
spec:
  template:
    metadata:
      name: nginx-pod
      labels:
        app: nginx
        type: webserver
    spec:
      containers:
      - name: nginx
        image: nginx
  replicas: 5
  selector:
    matchLabels:
      type: webserver