Чем управляется pod в Kubernetes

«Чем управляется pod в Kubernetes» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Pods в Kubernetes управляются контроллерами (controllers), которые следят за состоянием и поддерживают желаемое количество реплик. Основные типы:

  1. Deployment — для stateless-приложений, обеспечивает обновления, откаты и масштабирование.
  2. StatefulSet — для stateful-приложений (например, БД), гарантирует порядок и устойчивость томов.
  3. DaemonSet — запускает pod на каждом (или выбранном) узле (например, для логирования).
  4. Job/CronJob — для разовых или периодических задач.

Пример Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest