Серверное оборудование для бизнеса — надёжные решения для любых задач Подробнее →
Статья

Kubernetes в production: 30 уроков за 3 года эксплуатации

Показать содержание 7 разделов~1 мин

Всем привет! Меня зовут Павел Никитин, и я занимаюсь DevOps-инженерией — Kubernetes, Proxmox, автоматизация CI/CD. За 3 года эксплуатации K8s в production накопил много граблей. Делюсь.

Kubernetes — мощный инструмент, но он наказывает за небрежность. Вот главные уроки.

Ресурсы

  1. Всегда ставьте requests И limits — без них scheduler не знает, куда класть поды
  2. Requests ≠ Limits — limits выше requests на 20−50%, иначе OOMKill при пиках
  3. VPA > ручной тюнинг — Vertical Pod Autoscaler подберёт значения за вас

Networking

  1. NetworkPolicy с первого дня — default deny, разрешайте явно
  2. Не используйте NodePort в production — LoadBalancer или Ingress
  3. DNS caching — NodeLocal DNSCache экономит 30% latency

Storage

  1. StatefulSet для стейтфул приложений — не Deployment с PVC
  2. Бекапьте etcd — потеря etcd = потеря кластера
  3. StorageClass с reclaimPolicy: Retain — чтобы PV не удалялся случайно

Безопасность

  1. Pod Security Standards — restricted для всех namespace
  2. Не запускайте от root — runAsNonRoot: true
  3. Secrets — не в git — используйте Sealed Secrets или External Secrets
  4. RBAC минимальных привилегий — каждый сервис видит только своё

Observability

  1. Три столпа: metrics (Prometheus), logs (Loki), traces (Jaeger)
  2. Алерты на SLO, не на симптомы
  3. Dashboards as Code — Grafana + jsonnet/Grafonnet

Деплой

  1. GitOps (ArgoCD/Flux) — никакого kubectl apply из ноутбука
  2. Canary deploys — через Argo Rollouts или Flagger
  3. Helm для шаблонизации, но values.yaml per environment

Главный урок

K8s — не серебряная пуля. Если у вас 3 сервиса и 2 сервера — вам не нужен Kubernetes. Но если 50+ сервисов и команда из 10+ разработчиков — K8s окупается сторицей.

Какие грабли были у вас? Делитесь!

Для ответа вы можете авторизоваться