ملخص الحادثة (Incident Summary)
في 8 يوليو 2026، في تمام الساعة 14:15 بتوقيت UTC، حدث انقطاع في خدمة تحليل الأسماء (DNS) على مستوى العنقود البرمجي الرئيسي لنظام Kubernetes (prod-core-svcs)، مما تسبب في إخفاقات في التوجيه عبر عدة خدمات مصغرة. الخدمة المعتمدة على الوصول لقواعد البيانات والواجهات الخارجية تعطلت مؤقتاً.
تم تحفيز الحادثة بواسطة زيادة مفاجئة في استعلامات API الصادرة من خدمة أتمتة وكيل الذكاء الاصطناعي المستقل (aops-agent-scheduler). أدى هذا الارتفاع إلى تجاوز حدود مجمع الاتصالات الخارجي لموجهات DNS.
تمت استعادة الخدمة بالكامل بحلول الساعة 14:52 بتوقيت UTC (المدة: 37 دقيقة) بعد ضبط التخزين المؤقت في CoreDNS وتوسيع عدد النسخ وتطبيق سياسات إعادة استخدام الاتصالات داخل عميل HTTP لوكيل الذكاء الاصطناعي.
الجدول الزمني للحادثة (Timeline)
| الوقت (UTC) | الحدث / الإجراء |
|---|---|
| 14:12 | جدولة 5000 مهمة فحص وتدقيق متوازية لوكلاء الذكاء الاصطناعي. |
| 14:15 | انطلاق تنبيه عالي الخطورة من PagerDuty: APIGatewayErrorRate > 5%. |
| 14:18 | استجابة مهندس SRE المناوب. الفرضية الأولية: استنزاف اتصالات قاعدة البيانات. |
| 14:22 | الفحص التشخيصي يظهر سلامة قاعدة البيانات، لكن السجلات تبين خطأ: Dial tcp: lookup db-prod.internal: i/o timeout. |
| 14:25 | فحص سجلات CoreDNS: [WARNING] plugin/forward: dial tcp 10.x.x.x:53: i/o timeout (استنزاف مجمع الاتصالات). |
| 14:30 | إجراء موقت: زيادة نسخ CoreDNS من 3 إلى 10. |
| 14:35 | تحديد خدمة aops-agent-scheduler كمصدر لعاصفة الاستعلامات والحد من إرسالها مؤقتاً. |
| 14:40 | تطبيق تحديث تهيئة CoreDNS لتفعيل التخزين المؤقت واستراتيجية التناظر المسبق. |
| 14:45 | إعادة تشغيل جدول وكيل الذكاء الاصطناعي واستقرار مؤشرات استهلاك المعالج و DNS. |
| 14:52 | زوال كافة التنبيهات وعودة النظام للعمل بنسبة 100%. |
التحليل الفني للسبب العلمي (RCA)
لمعرفة سبب تعطل التحليل بفعل 5000 فحص متوازي، تتبع فريق SRE المسار الشبكي. كان وكيل الذكاء الاصطناعي ينشئ كائن نقل HTTP Transport جديد لكل عملية بدلاً من مشاركته، مما عطل إعادة استخدام الاتصالات وشغل 5000 مقبس شبكي تزامناً.
sequenceDiagram
participant AI as AI Agent Scheduler
participant KNS as Kube-DNS (CoreDNS)
participant UP as Upstream DNS (10.x.x.x)
Note over AI: إنشاء نقل جديد لكل مهمة
AI->>KNS: 5,000 استعلام تزامني
Note over KNS: فقدان التخزين المؤقت
KNS->>UP: توجيه 5,000 استعلام إلى Upstream
Note over UP: استنزاف حدود مجمع الاتصالات
UP-->>KNS: حزم مفقودة / i/o timeout
KNS-->>AI: i/o timeout (إخفاق)
الخطوات التصحيحية والتعزيز المستقبلي (Action Items)
- إعادة استخدام الاتصالات: تحديث عميل HTTP في Go لاستخدام مجمع اتصالات مشترك وقابل لإعادة الاستخدام.
- تحسين CoreDNS: تفعيل خيارات
prefetchوserve_staleفيCorefileلمنع طلب الاتصالات الخارجية عند الضغط. - مراقبة التنبيهات: إضافة تنبيه لمعدل حزم UDP المفقودة وحجم مجمع اتصالات DNS.