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

المختبر 2.2 - تحليل Worker Nodes

الأهداف​

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

  • فحص Worker Nodes
  • فهم دور kubelet
  • تحليل kube-proxy
  • فحص Container Runtime

المتطلبات الأساسية​

  • عنقود Kubernetes يعمل بشكل صحيح
  • تم تثبيت وتكوين kubectl
  • الوصول إلى العنقود

التمرين 1: فحص Nodes​

الخطوة 1: قائمة Nodes​

# عرض جميع nodes
kubectl get nodes

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

# عرض nodes مع مزيد من المعلومات
kubectl get nodes -o wide

السؤال: كم عدد Worker Nodes لديك؟ ما هي أدوارهم؟

الخطوة 2: معلومات Node​

# عرض تسميات node
kubectl get node <node-name> --show-labels

# عرض التعليقات التوضيحية
kubectl get node <node-name> -o jsonpath='{.metadata.annotations}'

التمرين 2: تحليل kubelet​

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

# عرض Pods النظام المرتبطة بـ kubelet
kubectl get pods -n kube-system | grep kubelet

# عرض أحداث node
kubectl get events --field-selector involvedObject.name=<node-name>

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

# عرض استخدام الموارد لـ node
kubectl top node <node-name>

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

التمرين 3: تحليل kube-proxy​

الخطوة 1: التحقق من kube-proxy​

# عرض Pod kube-proxy
kubectl get pods -n kube-system -l k8s-app=kube-proxy

# عرض سجلات kube-proxy
kubectl logs -n kube-system -l k8s-app=kube-proxy --tail=50

الخطوة 2: التحقق من الخدمات​

# قائمة جميع الخدمات
kubectl get services --all-namespaces

# عرض Endpoints لخدمة
kubectl get endpoints <service-name>

التمرين 4: Container Runtime​

الخطوة 1: تحديد Runtime​

# عرض معلومات node (تحتوي على runtime)
kubectl describe node <node-name> | grep "Container Runtime"

# عرض الصور المستخدمة
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.spec.containers[*].image}{"\n"}{end}' | sort -u

التمرين 5: Pods على Node​

الخطوة 1: Pods المعينة​

# عرض جميع Pods على node محدد
kubectl get pods --all-namespaces --field-selector spec.nodeName=<node-name>

# عدّ Pods حسب node
kubectl get pods --all-namespaces -o wide | awk '{print $7}' | sort | uniq -c

الخطوة 2: الموارد المستخدمة​

# عرض استخدام الموارد حسب Pod
kubectl top pods --all-namespaces

# التصفية حسب node
kubectl top pods --all-namespaces | grep <node-name>

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

  1. كم عدد Pods التي يمكن تشغيلها على كل node؟
  2. كيف يدير kubelet الموارد؟
  3. ما هو دور kube-proxy على كل node؟
  4. كيف يتم استخدام Container Runtime؟

التنظيف​

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


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

المختبر 2.3: مراقبة مكونات النظام
الوحدة 3: Pods والنشر


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