انتقل إلى المحتوى الرئيسي

المختبر 2.3 - مراقبة مكونات النظام

الأهداف​

في نهاية هذا المختبر، ستكون قادرًا على:

  • مراقبة مكونات Control Plane
  • مراقبة Worker Nodes
  • تحليل المقاييس النظامية
  • تحديد المشاكل المحتملة

المتطلبات المسبقة​

  • عنقود Kubernetes وظيفي
  • تثبيت kubectl
  • تثبيت Metrics Server (لـ kubectl top)

التمرين 1: مراقبة Control Plane​

الخطوة 1: حالة المكونات​

# عرض حالة المكونات (مهمل ولكنه مفيد)
kubectl get componentstatuses

# عرض الـ Pods لـ Control Plane
kubectl get pods -n kube-system

الخطوة 2: سجلات المكونات​

# سجلات API Server
kubectl logs -n kube-system -l component=kube-apiserver --tail=100

# سجلات Controller Manager
kubectl logs -n kube-system -l component=kube-controller-manager --tail=100

# سجلات Scheduler
kubectl logs -n kube-system -l component=kube-scheduler --tail=100

التمرين 2: مراقبة الـ Nodes​

الخطوة 1: صحة الـ Nodes​

# عرض حالة جميع الـ nodes
kubectl get nodes

# تفاصيل node
kubectl describe node <node-name>

# عرض شروط node
kubectl get node <node-name> -o jsonpath='{.status.conditions}'

الخطوة 2: مقاييس الـ Nodes​

# استخدام الموارد
kubectl top nodes

# تفاصيل الموارد
kubectl describe node <node-name> | grep -A 20 "Allocated resources"

التمرين 3: الأحداث والتنبيهات​

الخطوة 1: الأحداث الأخيرة​

# جميع الأحداث
kubectl get events --all-namespaces --sort-by='.lastTimestamp'

# أحداث الخطأ
kubectl get events --all-namespaces --field-selector type=Warning

# أحداث namespace
kubectl get events -n kube-system

الخطوة 2: أحداث مكون​

# الأحداث المتعلقة بـ Pod النظام
kubectl describe pod <pod-name> -n kube-system | grep Events -A 10

التمرين 4: صحة العنقود​

الخطوة 1: التحقق العام​

# معلومات العنقود
kubectl cluster-info

# الإصدار
kubectl version

# الموارد المتاحة
kubectl api-resources

الخطوة 2: مساحة الأسماء النظامية​

# جميع الموارد في kube-system
kubectl get all -n kube-system

# الأسرار النظامية
kubectl get secrets -n kube-system

# ConfigMaps النظامية
kubectl get configmaps -n kube-system

التمرين 5: التشخيص​

الخطوة 1: المشاكل الشائعة​

# Pods في خطأ
kubectl get pods --all-namespaces --field-selector status.phase!=Running

# Pods التي تعيد التشغيل
kubectl get pods --all-namespaces | grep -E "Error|CrashLoopBackOff"

# Nodes NotReady
kubectl get nodes | grep NotReady

الخطوة 2: تحليل السجلات​

# سجلات Pod الذي يتعطل
kubectl logs <pod-name> -n <namespace> --previous

# سجلات جميع الحاويات
kubectl logs <pod-name> -n <namespace> --all-containers=true

أسئلة للتفكير​

  1. ما هي المكونات الحرجة لعمل العنقود؟
  2. كيف تكتشف مشكلة مع مكون؟
  3. ما هي المقاييس الأكثر أهمية للمراقبة؟
  4. كيف ستتصرف إذا أصبح node NotReady؟

التنظيف​

لا حاجة للتنظيف.


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

الوحدة 3: Pods والنشر
اختبار الوحدة 2: تحقق من معرفتك


تم إنشاء المختبر في: ديسمبر 2024