استخدام أحداث Kubernetes لاستكشاف الأخطاء وإصلاحها في خدمة Azure Kubernetes (AKS)

توضح هذه المقالة كيفية استخدام أحداث Kubernetes لمراقبة المشكلات واستكشاف الأخطاء وإصلاحها في مجموعات Azure Kubernetes Service (AKS).

ما هي أحداث Kubernetes؟

الأحداث هي واحدة من أبرز المصادر لمراقبة واستكشاف الأخطاء وإصلاحها في Kubernetes. يلتقطون ويسجلون معلومات حول دورة حياة كائنات Kubernetes المختلفة، مثل pods والعقد والخدمات والنشرات. من خلال مراقبة الأحداث، يمكنك الحصول على رؤية لأنشطة نظام المجموعة الخاص بك، وتحديد المشكلات، واستكشاف المشكلات وإصلاحها بشكل فعال.

لا تستمر أحداث Kubernetes طوال دورة حياة نظام المجموعة، حيث لا توجد آلية استبقاء. تتوفر الأحداث لمدة ساعة واحدة فقط بعد إنشاء الحدث. لتخزين الأحداث لفترة زمنية أطول، قم بتمكين نتائج تحليلات الحاوية.

كائنات حدث Kubernetes

يسرد الجدول التالي بعض كائنات حدث Kubernetes الرئيسية:

اسم الحقل ‏‏الوصف
النوع يعتمد النوع على خطورة الحدث:
تشير أحداث التحذير إلى حالات يحتمل أن تكون إشكالية، مثل فشل جراب بشكل متكرر أو نفاد الموارد لعقدة. إنها تتطلب الانتباه، ولكنها قد لا تؤدي إلى فشل فوري.
تمثل الأحداث العادية العمليات الروتينية، مثل الجراب الذي تتم جدولته أو توسيع نطاق التوزيع. عادة ما تشير إلى سلوك نظام المجموعة السليم.
السبب سبب إنشاء الحدث. على سبيل المثال، فشل الجدولة أو CrashLoopBackoff.
رسالة رسالة يمكن للبشر قراءتها تصف الحدث.
مساحة الاسم مساحة اسم كائن Kubernetes المقترن بالحدث.
أول لقطة شاشة الطابع الزمني عند ملاحظة الحدث لأول مرة.
آخر لقطة شاشة الطابع الزمني لوقت آخر ملاحظة للحدث.
وحدة التحكم في التقارير اسم وحدة التحكم التي أبلغت عن الحدث. على سبيل المثال، kubernetes.io/kubelet
كائن اسم كائن Kubernetes المقترن بالحدث.

لمزيد من المعلومات، راجع وثائق Kubernetes الرسمية.

عرض أحداث Kubernetes

سرد كافة الأحداث في نظام المجموعة باستخدام kubectl get events الأمر .

بافتراض أن مجموعتك قد تم إنشاؤها بالفعل ومتاحة (لكل متطلبات مستند)، احصل على بيانات الاعتماد (لاحظ --overwrite-existing أنه تم تعيين العلامة لتجنب أخطاء kubeconfig):

az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --overwrite-existing

الآن سرد جميع الأحداث في نظام المجموعة الخاص بك:

kubectl get events

النتائج:

LAST SEEN   TYPE      REASON              OBJECT                      MESSAGE
xxm         Normal    Scheduled           pod/my-pod-xxxxx            Successfully assigned default/my-pod-xxxxx to aks-nodepoolxx-xxxxxxx-vmss000000
xxm         Normal    Pulled              pod/my-pod-xxxxx            Container image "nginx" already present on machine
xxm         Normal    Created             pod/my-pod-xxxxx            Created container nginx
xxm         Normal    Started             pod/my-pod-xxxxx            Started container nginx
...

انظر إلى أحداث جراب معين عن طريق العثور أولا على اسم الجراب ثم استخدام kubectl describe pod الأمر .

سرد pods في مساحة الاسم الحالية:

kubectl get pods

النتائج:

NAME                             READY   STATUS    RESTARTS   AGE
my-pod-xxxxx                     1/1     Running   0          xxm
nginx-deployment-xxxxx           1/1     Running   0          xxm
...

استبدل <pod-name> أدناه باسم الجراب الفعلي الخاص بك. بالنسبة للأتمتة، فيما يلي مثال على أول جراب في القائمة:

POD_NAME=$(kubectl get pods -o jsonpath="{.items[0].metadata.name}")
kubectl describe pod $POD_NAME

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

تصفية الأحداث حسب الصلة

قد يكون لديك مساحات أسماء وخدمات مختلفة قيد التشغيل في نظام مجموعة AKS. يمكن أن تساعد تصفية الأحداث استنادا إلى نوع الكائن أو مساحة الاسم أو السبب في تضييق نطاق النتائج وصولا إلى المعلومات الأكثر صلة.

على سبيل المثال، يمكنك استخدام الأمر التالي لتصفية الأحداث داخل مساحة الاسم الافتراضية:

kubectl get events --namespace default

أتمتة إعلامات الأحداث

لضمان الاستجابة في الوقت المناسب للأحداث الهامة في نظام مجموعة AKS، قم بإعداد الإعلامات التلقائية. يوفر Azure التكامل مع خدمات المراقبة والتنبيه مثل Azure Monitor. يمكنك تكوين التنبيهات لتشغيلها استنادا إلى أنماط أحداث معينة. بهذه الطريقة، يتم إعلامك على الفور بالمشكلات الحاسمة التي تتطلب الاهتمام.

مراجعة الأحداث بانتظام

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

الخطوات التالية

الآن بعد أن فهمت أحداث Kubernetes، يمكنك متابعة رحلة المراقبة والمراقبة من خلال تمكين نتائج تحليلات الحاوية.