مشاكل DNS في Kubernetes. بعد الوفاة العامة

ملحوظة perev. هي ترجمة للوفاة العامة من مدونة الهندسة Preply . يصف مشكلة الاتصال في مجموعة Kubernetes التي أدت إلى بعض التوقف عن بعض خدمات الإنتاج.

قد تكون هذه المقالة مفيدة لأولئك الذين يرغبون في معرفة المزيد عن ما بعد الوفاة أو لمنع بعض المشاكل المحتملة مع DNS في المستقبل.

صورة

هذا ليس DNS.
ربما لا يكون DNS.
لقد كان DNS.


قليلا عن ما بعد الوفاة والعمليات في Preply


يصف تشريح الجثة عطلًا أو حدثًا في مكتب المبيعات. يتضمن ما بعد الوفاة تسلسل زمني للأحداث ، ووصفًا للتأثير على المستخدم ، والسبب الجذري ، والإجراءات والدروس المستفادة.

البحث عن SRE

في الاجتماعات الأسبوعية مع البيتزا ، في دائرة الفريق الفني ، نشارك المعلومات المختلفة. أحد أهم أجزاء هذه الاجتماعات هو ما بعد الوفاة ، والذي غالبًا ما يكون مصحوبًا بعرض تقديمي مع شرائح وتحليل أعمق للحادث. على الرغم من حقيقة أننا لا "تصفيق" بعد الوفاة ، فإننا نحاول تطوير ثقافة "بدون لوم " ( فوضى لا لوم ). نحن نعتقد أن الكتابة وتقديم الجثة يمكن أن تساعدنا (وليس فقط) في منع وقوع حوادث مماثلة في المستقبل ، وهذا هو سبب مشاركتنا لها.

يجب أن يشعر الأشخاص المتورطون في الحادث أنه يمكنهم التحدث بالتفصيل عنه دون خوف من العقاب أو الانتقام. لا لوم! إن كتابة جثة ما بعد الوفاة ليست عقوبة ، ولكنها فرصة للتعلم للشركة بأكملها.

حافظ على CALMS & DevOps: S للمشاركة

مشاكل DNS في Kubernetes. بعد الوفاة


التاريخ: 02/28/2020

المؤلفون: Amet U.، Andrei S.، Igor K.، Aleksey P.

الحالة:

موجز مكتمل : عدم توفر DNS جزئيًا (26 دقيقة) لبعض الخدمات في مجموعة Kubernetes

الأثر: فقد 15000 حدث للخدمات A ،

السبب الجذري لـ B و C : تعذر على وكيل Kube حذف الإدخال القديم بشكل صحيح من جدول الارتباطات ، لذلك لا تزال بعض الخدمات تحاول الاتصال بعمليات الإرسال غير الموجودة
E0228 20:13:53.795782       1 proxier.go:610] Failed to delete kube-system/kube-dns:dns endpoint connections, error: error deleting conntrack entries for UDP peer {100.64.0.10, 100.110.33.231}, error: conntrack command returned: ...

الزناد: بسبب انخفاض الحمل داخل مجموعة Kubernetes ، قلل CoreDNS-autoscaler عدد القرون في النشر من ثلاثة إلى قرارين

: بدأت تطبيقات نشر أخرى في إنشاء عقد جديدة ، أضاف CoreDNS-autoscaler المزيد من الطوابق لخدمة الكتلة ، مما أثار الكتابة فوق

الكشف عن جدول ربط : رصدت بروميثيوس عددًا كبيرًا من أخطاء 5xx للخدمات A و B و C وبدأت مكالمة إلى أخطاء المهندسين


5x في الخدمة في كيبانا

أجراءات


فعلنوعمسؤولمهمة
تعطيل autoscaler ل CoreDNSمنعتأميت يو.DEVOPS-695
قم بتثبيت التخزين المؤقت لملقم DNSتخفيضماكس ف.DEVOPS-665
تكوين مراقبة conntrackمنعتأميت يو.DEVOPS-674

الدروس المستفادة


ما الذى اصبح بحالة جيده:

  • عملت المراقبة بشكل واضح. كان رد الفعل سريعًا ومنظمًا.


:

  • , conntrack
  • , ()
  • , DNS,

:

  • CoreDNS-autoscaler, conntrack

(EET)


22:13CoreDNS-autoscaler
22:18
22:21
22:39
22:405xx ,

  • الوقت للكشف: 4 دقائق.
  • الوقت لإكمال العمل: 21 دقيقة.
  • الوقت لإصلاح: 1 دقيقة

معلومة اضافية



لتقليل استخدام المعالج ، تستخدم نواة Linux شيئًا مثل conntrack. باختصار ، هذه أداة مساعدة تحتوي على قائمة بإدخالات NAT المخزنة في جدول خاص. عندما تأتي الحزمة التالية من نفس الكود إلى نفس الكود كما كان من قبل ، لن يتم إعادة حساب عنوان IP النهائي ، ولكن سيتم أخذه من جدول الارتباطات.

كيف يعمل conntrack

ملخص


كان هذا مثالًا على واحدة من جثثنا بعد الوفاة مع بعض الروابط المفيدة. نشارك في هذه المقالة على وجه التحديد المعلومات التي قد تكون مفيدة لشركات أخرى. هذا هو السبب في أننا لا نخاف من ارتكاب الأخطاء ، وهذا هو السبب في أننا نجعل أحدنا بعد الوفاة. فيما يلي بعض الموضوعات العامة الأكثر إثارة للاهتمام بعد الوفاة:


All Articles