intermediate

Pod

Понимайте наименьшую планируемую единицу: один или несколько контейнеров с общей сетевой идентичностью, volumes и lifecycle.

Pod — наименьшая планируемая единица Kubernetes. В нём может быть основной контейнер плюс sidecar с общей сетевой идентичностью, volumes и lifecycle — но масштабирование приложения обычно означает больше pod'ов, а не «толще» pod.

					apiVersion: v1
kind: Pod
metadata:
  name: api
  labels:
    app: api
spec:
  containers:
    - name: node
      image: my-api:1.2.0
      ports:
        - containerPort: 3000
      resources:
        requests:
          cpu: 100m
          memory: 256Mi
        limits:
          memory: 512Mi
				

Контейнеры в pod делят `localhost` и могут монтировать одни volumes. Init containers выполняются до старта app-контейнеров.

На интервью: общий localhost, restart policy, requests/limits, sidecar, init containers и эфемерность pod'ов.

Типовые ошибки: стабильные pod IP; несвязанные процессы в одном pod; отсутствие resource requests — ломаются scheduling и HPA.

Компромисс — удобство колокации против независимого масштабирования и изоляции сбоев.

Чеклист:

  • Pod'ы эфемерны.
  • Задавайте requests и limits.
  • Sidecar только при общем lifecycle.
  • Для приложений — Deployment, не голый Pod.