پرش به محتویات

شب ۱۹: انتشار و بازگشت در Nomad

بخش ۱۹ از مجموعهٔ آموزش Traefik در ۳۰ شب؛ هر جلسه برای ۶۰ تا ۹۰ دقیقه مطالعه، تمرین عملی، بررسی نتیجه و تمرین رفع خرابی طراحی شده است. مثال‌ها مطابق منبع با Traefik Proxy v3.7 نوشته شده‌اند؛ برای محیط عملیاتی نسخهٔ اصلاحی آزموده‌شده یا digest مشخصی را ثابت کنید. تمرین‌ها را روی میزبان یا کلاستر آزمایشگاهی اجرا کنید.

فهرست کامل دورهٔ ترافیک در ۳۰ شب

هدف‌های یادگیری

  • استفاده از سلامت انتشار، canary، تأیید انتشار و بازگشت خودکار Nomad.
  • مشاهدهٔ کشف Traefik هنگام جایگزینی allocation.
  • بازگشت بر اساس نسخهٔ job با محافظت در برابر تغییر هم‌زمان.

تمرین عملی: انتشار canary برنامه

job "whoami" {
  group "web" {
    count = 3
    update {
      max_parallel      = 1
      canary            = 1
      health_check      = "checks"
      min_healthy_time  = "15s"
      healthy_deadline  = "3m"
      progress_deadline = "10m"
      auto_revert       = true
      auto_promote      = false
    }
    # service/task unchanged
  }
}
nomad job plan whoami.nomad
nomad job run whoami.nomad
nomad deployment list
nomad deployment status DEPLOYMENT_ID
nomad alloc logs CANARY_ALLOC whoami
curl -fsS --resolve whoami.nomad.example.test:80:INGRESS_IP \
  http://whoami.nomad.example.test/
nomad deployment promote DEPLOYMENT_ID
nomad job history whoami

با ایمیج یا مسیر بررسی نامعتبر، canary آزمایشگاه را ناموفق کنید، انتشار را بررسی کنید و بگذارید auto_revert عمل کند. برای بازگشت عمدی:

nomad job status whoami
nomad job history whoami
nomad job revert -check-index CURRENT_MODIFY_INDEX whoami PREVIOUS_VERSION
nomad deployment status DEPLOYMENT_ID

شاخص بررسی مانع بازنویسی تغییر جدیدتر همکار دیگری می‌شود. آن را درست پیش از بازگشت ثبت کنید و اگر تغییر کرده، متوقف شوید.

به‌روزرسانی job مربوط به Traefik دقت بیشتری می‌خواهد، چون هر درخواست به آن وابسته است. از max_parallel=1، بررسی سلامت همراه مسیر آزمایشی خارجی، min_healthy_time کافی و متعادل‌کنندهٔ بار بالادستی با جایگزین سالم استفاده کنید. هم وضعیت انتشار Nomad و هم لاگ و متریک ارائه‌دهندهٔ Traefik را ببینید.

# Change evidence to record
release:
  job_version: 12
  modify_index: 48150
  image_digest: sha256:REDACTED
checks:
  nomad_deployment: successful
  provider_errors: 0
  synthetic_https: pass
rollback_version: 11

نکته‌های عیب‌یابی

  • canary سالم است اما مسیر کار نمی‌کند: بررسی‌های Nomad لزوماً مسیر عمومی، TLS و میان‌افزار را نمی‌آزمایند.
  • job revert رد شده است: شاخص تغییر عوض شده؛ وضعیت را دوباره بخوانید و هماهنگ کنید.
  • endpointهای قبلی مدتی باقی می‌مانند: پیش از اعلام شکست، watch و throttle ارائه‌دهنده و تخلیهٔ اتصال‌ها را اندازه بگیرید.
  • انتشار گیر کرده است: allocationهای ناموفق، مهلت پیشرفت، بررسی‌ها و محدودیت جانمایی را بررسی کنید.

خودآزمایی

  1. چرا auto-promote را برای canary آموزشی غیرفعال می‌کنیم؟ مرحلهٔ صریح مشاهده و تأیید ایجاد می‌کند.
  2. auto_revert به چه وابسته است؟ ارزیابی سلامت و مهلت انتشار، نه صرفاً SLO خارجی شما.
  3. چرا -check-index به کار می‌بریم؟ برای جلوگیری از بازنویسی تغییر هم‌زمان job.
  4. اثبات کنید: یک canary را ناموفق کنید، علت را ثبت کنید، خودکار یا دستی برگردید و درخواست عمومی را بازیابی کنید.