المختبر 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
أسئلة للتفكير
- ما هي المكونات الحرجة لعمل العنقود؟
- كيف تكتشف مشكلة مع مكون؟
- ما هي المقاييس الأكثر أهمية للمراقبة؟
- كيف ستتصرف إذا أصبح node NotReady؟
التنظيف
لا حاجة للتنظيف.
الخطوات التالية
الوحدة 3: Pods والنشر
اختبار الوحدة 2: تحقق من معرفتك
تم إنشاء المختبر في: ديسمبر 2024