Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

أحداث Kubernetes

يسجّل المشغّل أحداث Kubernetes على كائني ClickHouseCluster وKeeperCluster اللذين يديرهما. وتوضح هذه الأحداث ما الذي فعله المشغّل أثناء عملية المواءمة — أين فشلت تغييرات الموارد، ومتى أصبح العنقود جاهزًا، ولماذا تعطّل التوسيع — كما تُظهر الإخفاقات التي لا تظهر أصلًا في سجل يطالعه المستخدم عادةً. وهي تُكمل المقاييس بإرفاق سجل زمني مقروء للبشر مباشرةً بالمورد المخصص.

يبلّغ clickhouse-controller عن الأحداث في كائنات ClickHouseCluster، ويبلّغ keeper-controller عنها في كائنات KeeperCluster. وتشير أحداث إخفاقات دورة حياة المورد أيضًا إلى الكائن التابع المعني (مثل StatefulSet أو Service أو ConfigMap أو Secret أو PodDisruptionBudget أو PersistentVolumeClaim أو Job الخاص بفحص الإصدار)؛ أما الأحداث الأخرى فلا تشير إلا إلى العنقود نفسه.

عرض الأحداث

أسرع طريقة للاطلاع عليها هي استخدام kubectl describe على المورد المخصص، إذ يعرض أحدث الأحداث في الأسفل:

NS=<your-namespace>

kubectl -n $NS describe clickhousecluster <name>
kubectl -n $NS describe keepercluster <name>

لعرض الأحداث مباشرةً — على سبيل المثال لمراقبتها لحظيًا أو لتصفية حالات الإخفاق فقط — استعلم عن مورد events وصفِّ النتائج بحسب الكائن المعني أو النوع:

# All events for one cluster, newest last
kubectl -n $NS get events \
  --field-selector involvedObject.name=<name> \
  --sort-by=.lastTimestamp

# Only warnings across the namespace
kubectl -n $NS get events --field-selector type=Warning

# Follow events as they arrive
kubectl -n $NS get events --watch

تظهر وحدة التحكم المُبلِّغة في مصدر الحدث، لذا يمكنك التمييز بين حدث ClickHouseCluster (clickhouse-controller) وحدث KeeperCluster (keeper-controller).

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

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

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

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

السبب النوع المعنى
FailedCreate تحذير تعذّر على المشغِّل إنشاء مورد مملوك (مثل StatefulSet أو Service أو ConfigMap أو Secret أو PodDisruptionBudget أو Job).
FailedUpdate تحذير تعذّر على المشغِّل تحديث مورد.
FailedDelete تحذير تعذّر على المشغِّل حذف مورد مملوك أثناء المواءمة أو التقليص.

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

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

السبب النوع المعنى
ClusterReady عادي أصبح العنقود جاهزًا: لكل جزء بيانات في ClickHouse نسخة متماثلة جاهزة واحدة على الأقل، أو أن نصاب Keeper لديه قائد وعدد كافٍ من التابعين (أو أن نسخته المتماثلة المستقلة الوحيدة قيد التشغيل).
ClusterNotReady تحذير خرج العنقود من حالة الجاهزية — لم يعد لأي جزء بيانات في ClickHouse نسخة متماثلة جاهزة، أو فقد نصاب Keeper قائده أو عددًا كبيرًا جدًا من التابعين.

التوسيع

يُصدَر على KeeperCluster عندما يغيّر المشغّل عدد النسخ المتماثلة.

السبب النوع المعنى
HorizontalScaleStarted عادي بدأ المشغّل بإضافة نسخ متماثلة أو إزالتها.
HorizontalScaleCompleted عادي اكتملت عملية التوسيع.
ReplicaCreated عادي أضاف المشغّل نسخة متماثلة إلى الـ عنقود.
ReplicaDeleted عادي أزال المشغّل نسخة متماثلة أثناء التقليص.
HorizontalScaleBlocked تحذير رفض المشغّل التوسيع لأن حالة Keeper الحالية ليست آمنة بعد لتنفيذ ذلك.

External Secret

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

السبب النوع المعنى
ExternalSecretNotFound تحذير الـ Secret المشار إليه غير موجود في مساحة اسم العنقود.
ExternalSecretInvalid تحذير الـ Secret موجود، لكنه يفتقد المفاتيح المطلوبة (لا يُبلَّغ عنه إلا ضمن سياسة Observe).

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

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

السبب النوع المعنى
VersionProbeFailed تحذير تعذّر على Job فحص الإصدار اكتشاف إصدار ClickHouse قيد التشغيل.
VersionDiverge تحذير يختلف الإصدار المكتشَف لإحدى النسخ المتماثلة عن الإصدار الذي اكتشفه المشغّل للعنقود. ويُخفى هذا التحذير أثناء التحديثات المتدرجة.
VersionUpgradeAvailable تحذير يتوفر إصدار أحدث على قناة الترقية المُهيّأة، أو أن الإصدار قيد التشغيل ليس على تلك القناة، أو أنه لم يعد مدعومًا. ولا يُجري المشغّل الترقية تلقائيًا مطلقًا — فهذا الحدث للإعلام فقط.

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

السبب النوع المعنى
ClickHouseWarning تحذير تحذير يبلّغ عنه خادم ClickHouse نفسه، ويُعاد نشره من system.warnings.

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

kubectl -n $NS get events \
  --field-selector reason=ClickHouseWarning,involvedObject.name=<name>

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

يكشف المشغّل عن ثلاث واجهات للرصد؛ استخدم كلًّا منها فيما تجيده على أفضل وجه:

  • الأحداث (هذا الدليل) — حديثة، مقروءة للبشر، ومرتبطة بالكائن. وهي الأنسب لمعرفة "ما الذي حدث للتو لهذا العنقود" ولتحرّي الأعطال تفاعليًا باستخدام 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.
Navigation