Learning
Kubernetes

Podok és konténerek

Mi az a pod, miért ez a legkisebb egység, sidecar minta és pod életciklus állapotok.

Podok és konténerek

Mi az a pod?

A pod a Kubernetes legkisebb, önállóan telepíthető egysége. Fontos, hogy a Kubernetes nem közvetlenül konténerekkel dolgozik, hanem pod-okkal. Egy pod egy vagy több szorosan együttműködő konténert fog össze.

Miért a legkisebb egység?

A pod absztrakciós réteg a konténer fölött, mert:

  • A pod-on belüli konténerek ugyanazon a hálózati névtéren osztoznak (megosztott IP-cím, port-tér).
  • Ugyanazon a köteten (volume) is osztozhatnak.
  • Életciklusuk összekapcsolt: ha a pod meghal, minden benne lévő konténer meghal.

Egy konténeres pod

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
  labels:
    app: myapp
spec:
  containers:
    - name: app
      image: nginx:1.25
      ports:
        - containerPort: 80

Több konténeres pod (sidecar minta)

apiVersion: v1
kind: Pod
metadata:
  name: sidecar-pod
spec:
  containers:
    - name: main-app
      image: myapp:latest
      ports:
        - containerPort: 8080
    - name: log-collector
      image: fluentd:latest
      volumeMounts:
        - name: shared-logs
          mountPath: /var/log/app
  volumes:
    - name: shared-logs
      emptyDir: {}

Pod életciklus

ÁllapotLeírás
PendingBe van ütemezve, de a konténerek még nem indultak el
RunningLegalább egy konténer fut
SucceededMinden konténer sikeresen leállt (egyszeri feladatoknál)
FailedLegalább egy konténer hibával állt le
UnknownIsmeretlen állapot (pl. hálózati hiba)

Fontos: Éles rendszerben ne hozz létre pod-ot közvetlenül. Használj deployment-et (vagy más magasabb szintű objektumot), ami kezeli a pod-ok életciklusát.

Rövid összefoglaló

  • A pod a legkisebb egység, egy vagy több konténert tartalmaz.
  • A pod-on belüli konténerek osztoznak hálózaton és köteteken.
  • Production-ben kerüld a „bare pod” használatát.

On this page