System Design Space
Граф знанийНастройки

Обновлено: 25 марта 2026 г. в 00:30

Kubernetes Patterns (short summary)

hard

Паттерны Kubernetes полезны тем, что превращают сырые примитивы кластера в повторяемые способы организовать жизненный цикл приложения.

Для реальных проектных решений глава помогает увидеть, когда sidecar, init container, operator или job-based pipeline действительно решают задачу, а когда только добавляют слой сложности поверх сервиса и платформы.

Для интервью и инженерных разборов она полезна тем, что помогает обсуждать паттерны через их цену для deployability, observability и сопровождения, а не как универсальные рецепты.

Практическая польза главы

Практика проектирования

Выбирайте паттерны под задачу: sidecar, init, operator или job-based pipelines, а не по моде.

Качество решений

Оценивайте паттерны по влиянию на deployability, observability и отказоустойчивость сервиса.

Interview articulation

Обосновывайте выбор паттерна через контекст проблемы и ожидаемый operational outcome.

Trade-off framing

Фиксируйте, где паттерн упрощает управление, а где приводит к лишним слоям абстракции.

Источник

Обзор книги

Материал главы основан на детальном разборе книги в блоге

Читать оригинал

Kubernetes Patterns, 2nd Edition (Паттерны Kubernetes: Шаблоны разработки собственных облачных приложений)

Авторы: Bilgin Ibryam, Roland Huß
Издательство: O'Reilly Media, 2019 (2nd Edition 2023)
Объём: 390 страниц

Каталог паттернов для K8s: foundational, behavioral, structural и configuration patterns от Bilgin Ibryam.

Оригинал
Перевод

Документальные фильмы

Связанная книга

Cloud Native

Контекст cloud-native разработки: containers, serverless, data management.

Читать обзор

Категории паттернов

I

Foundational Patterns

Базовые принципы: как контейнеризировать приложения, управлять жизненным циклом и определять health checks.

II

Behavioral Patterns

Как приложения взаимодействуют с платформой: batch jobs, scheduled tasks, stateful workloads.

III

Structural Patterns

Организация контейнеров в Pod: sidecar, ambassador, adapter и другие multi-container паттерны.

IV

Configuration Patterns

Управление конфигурацией: ConfigMaps, Secrets, immutable configuration, configuration templates.

Подкаст

Code of Architecture

Обсуждение Kubernetes Patterns в подкасте клуба Code of Architecture

Смотреть на YouTube

Foundational Patterns

Health Probe

Механизмы для определения состояния приложения:

Liveness Probe

Жив ли процесс? Перезапуск при failure.

Readiness Probe

Готов ли принимать трафик?

Startup Probe

Для медленно стартующих приложений.

Predictable Demands

Декларация ресурсных требований для правильного scheduling:

resources:
  requests:
    memory: "256Mi"
    cpu: "250m"
  limits:
    memory: "512Mi"
    cpu: "500m"

Managed Lifecycle

Graceful shutdown через preStop hooks и SIGTERM handling. PostStart hooks для инициализации. Правильная обработка сигналов — критично для zero-downtime deployments.

Подкаст

Code of Architecture

Продолжение обсуждения Kubernetes Patterns в подкасте

Смотреть на YouTube

Behavioral Patterns

Связанная книга

Site Reliability Engineering

SRE-практики для управления workloads в production.

Читать обзор

Batch Job

Kubernetes Job для run-to-completion задач. Параллельное выполнение, retry policies, backoff limits. Идеально для data processing, migrations, reports.

Periodic Job (CronJob)

Scheduled задачи по расписанию cron. Concurrency policies: Allow, Forbid, Replace. История успешных и неуспешных jobs.

Stateful Service

StatefulSet для приложений с состоянием: databases, message queues. Stable network identities, ordered deployment, persistent storage per pod.

Service Discovery

Kubernetes Services: ClusterIP, NodePort, LoadBalancer. DNS-based discovery (service.namespace.svc.cluster.local). Headless services для StatefulSets.

Sidecar

Дополнительный контейнер расширяет функциональность основного без изменения его кода.

Logging agentProxySync

Ambassador

Proxy для упрощения доступа к внешним сервисам. Скрывает сложность подключения.

DB proxyAPI gateway

Adapter

Преобразует вывод приложения в стандартный формат. Полезно для legacy систем.

Metrics exporterLog formatter

Init Container

Выполняется до основного контейнера. Подготовка окружения, ожидание зависимостей.

DB migrationWait for service

Глубокое погружение

Designing Distributed Systems

Brendan Burns детально разбирает configuration и operational паттерны.

Читать обзор

Configuration Patterns

EnvVar Configuration

Простейший способ — environment variables. Подходит для небольшого числа параметров. Можно использовать valueFrom для ссылок на ConfigMaps/Secrets.

Configuration Resource (ConfigMap)

Хранение конфигурации отдельно от образа. Монтирование как файлы или env vars.

Версионирование в Git
Hot reload (с subPath)

Immutable Configuration

Конфигурация как часть immutable image. Гарантирует consistency между environments. Требует пересборки для изменений — trade-off между safety и flexibility.

Secret Management

Kubernetes Secrets для чувствительных данных. Base64 encoding (не encryption!). Интеграция с external secret managers: Vault, AWS Secrets Manager, Azure Key Vault.

Подкаст

Code of Architecture

Обсуждение Advanced Patterns в подкасте

Смотреть на YouTube

Advanced Patterns

Controller

Reconciliation loop: observe → diff → act. Основа всех Kubernetes controllers. Custom controllers для автоматизации operations.

Operator

Controller + CRD = domain-specific automation. Кодификация operational knowledge. Примеры: Prometheus Operator, Strimzi.

Elastic Scale

HorizontalPodAutoscaler по CPU, memory или custom metrics. VerticalPodAutoscaler для right-sizing. KEDA для event-driven scaling.

Self Awareness

Downward API для доступа к метаданным пода. Pod name, namespace, labels, annotations доступны приложению.

Связанная книга

Building Microservices

Паттерны декомпозиции и коммуникации сервисов для интервью.

Читать обзор

Применение на System Design интервью

Полезные концепции

  • Health probes для zero-downtime deployments
  • Sidecar pattern для cross-cutting concerns
  • StatefulSet для stateful workloads
  • Init containers для dependencies
  • Resource requests/limits для capacity
  • HPA для auto-scaling

Вопросы, где пригодится

  • «Как деплоить сервис без даунтайма?»
  • «Как масштабировать stateful сервис?»
  • «Как организовать service mesh?»
  • «Как добавить logging/tracing?»
  • «Как управлять secrets?»

Главные выводы

Паттерны — переиспользуемые решения для типовых задач в K8s
Health probes критичны для production readiness
Multi-container паттерны расширяют возможности без изменения кода
Configuration отделена от кода — ключ к portability
Operators кодифицируют operational knowledge
Понимание паттернов — основа для архитектурных решений

Связанные главы

Где найти книгу

Чтобы отмечать прохождение, включи трекинг в Настройки