• Русский
  • Использование Canary Release

    Содержание

    Введение

    Canary Release позволяет контролируемо развертывать обновления сервисов посредством постепенного переключения трафика и мониторинга в реальном времени. Эта функциональность:

    • Снижает риски при развертывании в продуктивных средах
    • Поддерживает несколько стратегий релиза (canary/blue-green/A/B тестирование)
    • Обеспечивает автоматические механизмы отката
    • Интегрируется с GitOps-процессами

    Основная ценность: безопасное и наблюдаемое обновление версий сервисов

    Особенности

    • Ручной/автоматический режим управления трафиком
    • Правила маршрутизации на основе заголовков и путей
    • Метрики успешности и задержек в реальном времени
    • Конфигурация на основе CRD для GitOps

    Преимущества

    Точное управление: разбиение трафика с точностью до 1%
    Видимость: интегрированная панель мониторинга
    Безопасность: автоматический откат при превышении порогов ошибок
    Соответствие: соблюдение политик безопасности во время релиза

    Включение Canary Release

    Шаг 1: Доступ к конфигурации сервиса

    1. Перейдите: Service List > Target Service
    2. Выберите вкладку Canary Release
    3. Нажмите Enable в разделе Release Configuration

    Шаг 2: Настройка параметров релиза

    analysis:
      interval: 2m
      maxWeight: 50
      stepWeight: 10
      threshold: 10
    maxResponseTime: 500
    minSuccessRate: 95
    ПараметрОбязательныйЗначение по умолчаниюОписание
    intervalДа2mИнтервал переключения трафика
    maxWeightДа50%Порог продвижения
    thresholdДа10Максимально допустимые ошибки

    Управление конфигурацией маршрутизации

    Распределение трафика

    http:
    - route:
      - destination: reviews-primary
        weight: 80
      - destination: reviews-canary
        weight: 20

    Маршрутизация на основе заголовков

    - match:
      - headers: { "user-type": "internal" }
      route:
        - destination: reviews-canary

    Тестирование по конкретным путям

    - match:
      - uri: { prefix: "/api/v2" }
      route:
        - destination: reviews-canary
          weight: 20

    Справочник CanaryDelivery CRD

    Требования к метаданным

    ПолеОграничениеПример
    nameДолжно совпадать с именем сервисаreviews
    namespaceДолжно совпадать с namespace сервисаprod

    Детали спецификации

    spec:
      delivertype: canary
      targetRef:
        name: reviews-v1
      trafficControl: system
    ПолеДопустимые значенияОписание
    promoteControluser/systemРежим подтверждения релиза
    trafficControluser/systemРежим управления трафиком

    Мониторинг и валидация

    Ключевые метрики

    МетрикаРасчетПорог
    Success Rate2xx/Total>95%
    Latencyavg(response_time)<500ms
    ErrorsКол-во 5xx<10/период

    Состояния релиза

    1. Initializing ➔ 2. Progressing ➔ 3. Promoting ➔ 4. Completed
    kubectl get canarydeliveries -n prod

    Операционные ограничения

    • Несовместимость с существующей маршрутизацией сервисов
    • Требуется уникальное имя сервиса в кластере
    • Для сервисов, управляемых GitOps, ограничены возможности UI
    • Политики безопасности остаются активными во время релиза