Skip to main content
يسجّل المشغّل أحداث Kubernetes على كائني ClickHouseCluster وKeeperCluster اللذين يديرهما. وتوضح هذه الأحداث ما الذي فعله المشغّل أثناء عملية المواءمة — أين فشلت تغييرات الموارد، ومتى أصبح العنقود جاهزًا، ولماذا تعطّل التوسيع — كما تُظهر الإخفاقات التي لا تظهر أصلًا في سجل يطالعه المستخدم عادةً. وهي تُكمل المقاييس بإرفاق سجل زمني مقروء للبشر مباشرةً بالمورد المخصص. يبلّغ clickhouse-controller عن الأحداث في كائنات ClickHouseCluster، ويبلّغ keeper-controller عنها في كائنات KeeperCluster. وتشير أحداث إخفاقات دورة حياة المورد أيضًا إلى الكائن التابع المعني (مثل StatefulSet أو Service أو ConfigMap أو Secret أو PodDisruptionBudget أو PersistentVolumeClaim أو Job الخاص بفحص الإصدار)؛ أما الأحداث الأخرى فلا تشير إلا إلى العنقود نفسه.
تنتهي صلاحية الأحداث في Kubernetes API server بعد مدة TTL — ساعة واحدة افتراضيًا (--event-ttl). لذلك، تُعدّ هذه الأحداث مؤشرًا قصير الأمد على النشاط الحديث، وليست سجل تدقيق دائم.

عرض الأحداث

أسرع طريقة للاطلاع عليها هي استخدام kubectl describe على المورد المخصص، إذ يعرض أحدث الأحداث في الأسفل:
لعرض الأحداث مباشرةً — على سبيل المثال لمراقبتها لحظيًا أو لتصفية حالات الإخفاق فقط — استعلم عن مورد events وصفِّ النتائج بحسب الكائن المعني أو النوع:
تظهر وحدة التحكم المُبلِّغة في مصدر الحدث، لذا يمكنك التمييز بين حدث ClickHouseCluster (clickhouse-controller) وحدث KeeperCluster (keeper-controller).

مرجع أسباب الأحداث

يُصدر المشغِّل مجموعة ثابتة من الأسباب، مصنّفةً بحسب ما تصفه. تُفيد أحداث Normal بتقدّم متوقَّع، بينما تُفيد أحداث Warning بوجود إخفاق أو حالة ينبغي للمستخدم اتخاذ إجراء بشأنها.

دورة حياة المورد

يُصدَر لكلٍّ من ClickHouseCluster وKeeperCluster عندما يفشل المشغِّل في تطبيق موردٍ مملوك أثناء عملية المواءمة.

جاهزية العنقود

يُرسَل لكلا النوعين عندما يتجاوز العنقود حدًّا من حدود الجاهزية.

التوسيع

يُصدَر على KeeperCluster عندما يغيّر المشغّل عدد النسخ المتماثلة.
الحدث HorizontalScaleBlocked هو ما ينبغي مراقبته عندما يبدو أن طلب توسيع Keeper لا يؤدي إلى أي شيء: إذ يعلّق المشغّل التغيير عمدًا ويُبقي على نصاب الحالي بدلًا من المخاطرة بحدوث انقسام. توضّح رسالة الحدث القيد الذي حال دون تنفيذ التغيير.

External Secret

يظهر على ClickHouseCluster عندما يُشير العنقود إلى Secret خارجي يتعذر على المشغّل استخدامه. راجع ميزة External Secret في دليل التهيئة.

فحوصات الإصدار

تصدرها فحوصات الإصدار الخاصة بكلٍّ من ClickHouseCluster وKeeperCluster. ويختص VersionProbeFailed بـ Job فحص إصدار ClickHouse.

تحذيرات خادم ClickHouse

يختلف هذا السبب الأخير: فهو لا يصف الإجراءات التي ينفّذها المشغّل نفسه. في كل نسخة متماثلة جاهزة، يستعلم المشغّل دوريًا جدول system.warnings في الخادم، ويعيد نشر كل صف كحدث Warning على مستوى العنقود، مع إضافة بادئة تشير إلى النسخة المتماثلة التي صدر عنها. وبهذا تتحول تحذيرات ClickHouse الخاصة بالتكوين وبيئة التشغيل — مثل الإعدادات المتقادمة، والحدود المنخفضة، والخيارات غير الآمنة — إلى أحداث يمكنك الاطلاع عليها باستخدام kubectl من دون فتح جلسة clickhouse-client على كل نسخة متماثلة.

الأحداث والمقاييس والحالات

يكشف المشغّل عن ثلاث واجهات للرصد؛ استخدم كلًّا منها فيما تجيده على أفضل وجه:
  • الأحداث (هذا الدليل) — حديثة، مقروءة للبشر، ومرتبطة بالكائن. وهي الأنسب لمعرفة “ما الذي حدث للتو لهذا العنقود” ولتحرّي الأعطال تفاعليًا باستخدام kubectl describe. وهي تنقضي بمرور الوقت.
  • status.conditions على المورد المخصص — الحقيقة الحالية المستمرة (جاهز، وExternal Secret صالح، وscale مسموح، وversion متزامن). وهي الأنسب للبرامج النصية وبوابات السلامة في GitOps. اقرأها باستخدام kubectl get clickhousecluster <name> -o jsonpath='{.status.conditions}'.
  • المقاييس — ثابتة و رقمية. وهي الأنسب للوحات المعلومات وللتنبيه عند استمرار ارتفاع معدل أخطاء reconcile.
غالبًا ما يصف حدث Warning وحالة False المشكلة نفسها من زاويتين: فالحدث يلتقط اللحظة والرسالة، بينما تعكس الحالة الوضع إلى أن يزول.

استكشاف الأخطاء وإصلاحها باستخدام الأحداث

فيما يلي بعض المؤشرات الشائعة وما تدل عليه:
  • FailedCreate / FailedUpdate تتكرر — يتعذّر على المشغّل تطبيق مورد. تتضمن رسالة الحدث خطأ واجهة برمجة التطبيقات (رفض في مرحلة القبول، أو حصة، أو مواصفة غير صالحة). وتُعاد محاولات المواءمة، لذا يزول السبب العابر من تلقاء نفسه؛ أما السبب المستمر فيتطلب إصلاحًا في المواصفة أو في العنقود.
  • ClusterNotReady بدون ظهور ClusterReady مقابلة — العنقود لا يتعافى. تحدد رسالة الحدث الأجزاء الموزعة غير الجاهزة أو مشكلة النصاب؛ تحقّق من الـ pod المرتبطة بها.
  • HorizontalScaleBlocked — يجري إيقاف عملية توسيع مقصودة لأسباب تتعلق بالسلامة. اقرأ الرسالة لمعرفة القيد المحدد قبل فرض أي إجراء.
  • ExternalSecretNotFound / ExternalSecretInvalid — صحّح اسم Secret أو مفاتيحه؛ وتتحول الحالة المطابقة ExternalSecretValid إلى True بمجرد أن يتمكن المشغّل من استخدامها.
  • ClickHouseWarning — المشكلة داخل ClickHouse وليست في المشغّل. تعامل مع الرسالة كما تتعامل مع صف من system.warnings.
  • مراقبة المشغّل — المقاييس ومسبارات الصحة، وهي المقابل الأكثر ثباتًا للأحداث.
  • التوسيع — ما الذي تحميه HorizontalScaleBlocked وكيف تقيّد حدود النصاب في Keeper عملية التوسيع.
  • التهيئة — ميزة External Secret التي تقف وراء أحداث external-secret.
آخر تعديل في ٢٣ يوليو ٢٠٢٦