> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# أحداث Kubernetes

> كيف يبلّغ المشغّل عن إخفاقات المواءمة، وتقدّم التوسيع، وفحوصات الإصدار، وتحذيرات ClickHouse server على هيئة أحداث Kubernetes في كائنات ClickHouseCluster وKeeperCluster، وكيفية عرضها، وما الذي يعنيه سبب كل حدث.

يسجّل المشغّل أحداث Kubernetes على كائني `ClickHouseCluster` و`KeeperCluster` اللذين يديرهما. وتوضح هذه الأحداث ما الذي فعله المشغّل أثناء عملية المواءمة — أين فشلت تغييرات الموارد، ومتى أصبح العنقود جاهزًا، ولماذا تعطّل التوسيع — كما تُظهر الإخفاقات التي لا تظهر أصلًا في سجل يطالعه المستخدم عادةً. وهي تُكمل [المقاييس](/docs/ar/products/kubernetes-operator/guides/monitoring) بإرفاق سجل زمني مقروء للبشر مباشرةً بالمورد المخصص.

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

<Note>
  تنتهي صلاحية الأحداث في Kubernetes API server بعد مدة TTL — ساعة واحدة افتراضيًا (`--event-ttl`). لذلك، تُعدّ هذه الأحداث مؤشرًا قصير الأمد على النشاط الحديث، وليست سجل تدقيق دائم.
</Note>

<div id="viewing-events">
  ## عرض الأحداث
</div>

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

```bash theme={null}
NS=<your-namespace>

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

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

```bash theme={null}
# 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`).

<div id="event-reasons">
  ## مرجع أسباب الأحداث
</div>

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

<div id="resource-lifecycle">
  ### دورة حياة المورد
</div>

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

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

<div id="cluster-readiness">
  ### جاهزية العنقود
</div>

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

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

<div id="scaling">
  ### التوسيع
</div>

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

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

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

<div id="external-secret">
  ### External Secret
</div>

يظهر على `ClickHouseCluster` عندما يُشير العنقود إلى Secret خارجي
يتعذر على المشغّل استخدامه. راجع ميزة External Secret في
[دليل التهيئة](/docs/ar/products/kubernetes-operator/guides/configuration).

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

<div id="version-checks">
  ### فحوصات الإصدار
</div>

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

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

<div id="clickhouse-warnings">
  ### تحذيرات خادم ClickHouse
</div>

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

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

```bash theme={null}
kubectl -n $NS get events \
  --field-selector reason=ClickHouseWarning,involvedObject.name=<name>
```

<div id="events-vs-metrics">
  ## الأحداث والمقاييس والحالات
</div>

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

* **الأحداث** (هذا الدليل) — حديثة، مقروءة للبشر، ومرتبطة بالكائن. وهي الأنسب
  لمعرفة "ما الذي حدث للتو لهذا العنقود" ولتحرّي الأعطال تفاعليًا باستخدام
  `kubectl describe`. وهي تنقضي بمرور الوقت.
* **`status.conditions`** على المورد المخصص — الحقيقة الحالية المستمرة
  (جاهز، وExternal Secret صالح، وscale مسموح، وversion متزامن). وهي الأنسب
  للبرامج النصية وبوابات السلامة في GitOps. اقرأها باستخدام
  `kubectl get clickhousecluster <name> -o jsonpath='{.status.conditions}'`.
* **[المقاييس](/docs/ar/products/kubernetes-operator/guides/monitoring)** — ثابتة و
  رقمية. وهي الأنسب للوحات المعلومات وللتنبيه عند استمرار ارتفاع معدل
  أخطاء reconcile.

غالبًا ما يصف حدث `Warning` وحالة `False` المشكلة نفسها من زاويتين:
فالحدث يلتقط اللحظة والرسالة، بينما تعكس الحالة الوضع إلى أن يزول.

<div id="troubleshooting">
  ## استكشاف الأخطاء وإصلاحها باستخدام الأحداث
</div>

فيما يلي بعض المؤشرات الشائعة وما تدل عليه:

* **`FailedCreate` / `FailedUpdate` تتكرر** — يتعذّر على المشغّل تطبيق
  مورد. تتضمن رسالة الحدث خطأ واجهة برمجة التطبيقات (رفض في مرحلة القبول، أو حصة،
  أو مواصفة غير صالحة). وتُعاد محاولات المواءمة، لذا يزول السبب العابر من تلقاء نفسه؛ أما
  السبب المستمر فيتطلب إصلاحًا في المواصفة أو في العنقود.
* **`ClusterNotReady` بدون ظهور `ClusterReady` مقابلة** — العنقود لا
  يتعافى. تحدد رسالة الحدث الأجزاء الموزعة غير الجاهزة أو مشكلة النصاب؛
  تحقّق من الـ pod المرتبطة بها.
* **`HorizontalScaleBlocked`** — يجري إيقاف عملية توسيع مقصودة لأسباب تتعلق بالسلامة. اقرأ
  الرسالة لمعرفة القيد المحدد قبل فرض أي إجراء.
* **`ExternalSecretNotFound` / `ExternalSecretInvalid`** — صحّح اسم `Secret` أو
  مفاتيحه؛ وتتحول الحالة المطابقة `ExternalSecretValid` إلى `True` بمجرد أن
  يتمكن المشغّل من استخدامها.
* **`ClickHouseWarning`** — المشكلة داخل ClickHouse وليست في المشغّل.
  تعامل مع الرسالة كما تتعامل مع صف من `system.warnings`.

<div id="related-guides">
  ## أدلة ذات صلة
</div>

* [مراقبة المشغّل](/docs/ar/products/kubernetes-operator/guides/monitoring) — المقاييس ومسبارات الصحة، وهي المقابل الأكثر ثباتًا للأحداث.
* [التوسيع](/docs/ar/products/kubernetes-operator/guides/scaling) — ما الذي تحميه `HorizontalScaleBlocked` وكيف تقيّد حدود النصاب في Keeper عملية التوسيع.
* [التهيئة](/docs/ar/products/kubernetes-operator/guides/configuration) — ميزة External Secret التي تقف وراء أحداث external-secret.
