System Design Space

    Глава 135

    Обновлено: 16 февраля 2026 г. в 03:00

    Kubernetes Patterns (short summary)

    Прогресс части0/17

    Источник

    Обзор книги

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

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

    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.

    Kubernetes Patterns, 2nd Edition — оригинальная обложкаОригинал
    Паттерны Kubernetes: Шаблоны разработки собственных облачных приложений — переводПеревод

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

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

    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
    Понимание паттернов — основа для архитектурных решений

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