المقدمة
يصف هذا المستند إجراء أستكشاف أخطاء Kubernetes Pod غير جاهز للظهور في وظيفة التحكم في السياسة (PCF) وإصلاحها.
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
- PCF
- نظام النشر الأصلي (CNDP) عبر شبكة 5G
- محطات الإرساء و كوبرنيتس
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:
- PCF rel_2023.01.2
- Kubernetes v1.24.6
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
معلومات أساسية
في هذا الإعداد، يستضيف CNDP PCF.
عندما يكون Kubernetes Pod في حالة "غير جاهز"، فهذا يعني أن Pod غير قادر حاليا على خدمة حركة المرور لأن واحدة أو أكثر من حاويات Kubernetes ليست في حالة جاهزة. قد يرجع هذا إلى أسباب مختلفة، مثل الحاويات التي لا تزال قيد الإنشاء، أو فشل الفحوصات الصحية، أو مواجهة أخطاء.
المشكلة
يمكنك مشاهدة التنبيهات على بيئة التنفيذ المشترك (CEE) لأجهزة Kubernetes (K8s)، حالة غير جاهزة.
Command:
cee# show alerts active summary summary
Example:
[pcf01/pcfapp] cee# show alerts active summary
NAME UID SEVERITY STARTS AT DURATION SOURCE SUMMARY
----------------------------------------------------------------------------------------------------------
k8s-pod-not-ready 35b143f885ec critical 06-13T08:22:05 mirror-maker-0 Pod pcf-pcf/mirror-maker-0 has been in a non-ready state for longer than 1 minute
k8s-pod-crashing-loop 990b651ad5f5 critical 04-19T22:51:08 pcf01-master-2 Pod cee-irv1bmpcf/pgpool-65fc8b8d5f-2w9nq (pgpool) is restarting 2.03 times / 10 minutes.
k8s-pod-restarting a44d31701faf minor 04-19T01:55:38 pcf01-master-2 Pod cee-irv1bmpcf/pgpool-65fc8b8d5f-2w9nq (pgpool) is restarting 2.03 times / 10 minutes.
k8s-deployment-replic b8f04c540905 critical 04-06T01:53:48 pcf01-master-2 Deployment cee-irv1bmpcf/pgpool has not matched the expected number of replicas for longer th...
k8s-pod-not-ready cb2c8ee4a9c9 critical 04-06T01:53:48 pgpool-65fc8b8d5f-2w9 Pod cee-pcf/pgpool-65fc8b8d5f-2w9nq has been in a non-ready state for longer than 5 min...
تحليل
الاقتراب رقم 1
بعد تسجيل الدخول إلى عقدة Kubernetes (K8s)، تحقق من التنبيهات لعقدة في حالة "غير جاهز" حاليا.
من المستحسن فحص أي عملية ترقية أو صيانة. في ذلك الوقت، يمكن إستخدام POD دون اتصال لتطبيق التحديثات أو تثبيت برامج جديدة أو تنفيذ مهام ضرورية أخرى. أو أنشطة الصيانة المستمرة التي يمكن أن تؤثر على توفر POD.
من المتوقع أن تكون نقاط الوصول المتطابقة في الحالة المذكورة أثناء نشاط ترقية الموقع على موقع النظير (GR).
اتصل بالعقدة الرئيسية وتحقق من حالة POD المتطابقة.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep mirror
NAMESPACE NAME READY STATUS RESTARTS AGE
pcf-pcf01 mirror-maker-0 0/1 Running 1 5d23h
#Post upgrade Activity mirror-maker pod status
cloud-user@pcf01-master-1:~$ kubectl get pods -A|grep mirror
pcf-pcf01 mirror-maker-0 1/1 Running 1 6d.
الاقتراب الثاني
إذا إستلمت تنبيهات تشير إلى أن نقطة وصول (K8s) من Kubernetes (K8s) ليست في حالة إستعداد داخل شبكة إيثرنت المحسنة المجمعة (CEE)، فإنها تقترح أن نقطة الوصول تواجه مشكلات ولا يمكن اعتبارها قابلة للتشغيل الكامل. عادة ما تعني هذه الحالة أن pod غير قادر على قبول حركة المرور أو تنفيذ الوظيفة المقصودة.
قم بتحليل التنبيهات والمعلومات ذات الصلة لفهم سبب حالة "غير جاهز". يمكن أن توفر التنبيهات تفاصيل حول المشكلة المحددة أو المشغل الذي أدى إلى تغيير حالة العقدة. من الأسباب الشائعة لوجود عقدة في حالة "غير جاهز" قيود الموارد أو مشاكل اتصال الشبكة أو أعطال الأجهزة أو مشاكل التكوين.
الخطوة 1. تحقق من حالة POD باستخدام الأمرkubectl get pods
للتحقق من حالة POD والبحث عن حالة POD. إذا لم يكن pod جاهزا، فيمكنه عرض حالة مثل 'Pending' أو 'CrashLoopBackOff' أو 'Error'.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -v Running
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cee-pcf pgpool-65fc8b8d5f-2w9nq 0/1 CrashLoopBackOff 147 (117s ago) 8d xxx.xxx.xxx.xx pcf01-master-2 <none> <none>
All nodes including master-2 are in Ready state
cloud-user@pcf01-master-1:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
Pcf01-master-1 Ready control-plane 667d v1.24.6
Pcf01-master-2 Ready control-plane 9d v1.24.6
Pcf01-master-3 Ready control-plane 9d v1.24.6
Pcf01-worker-1 Ready <none> 9d v1.24.6
Pcf01-worker-10 Ready <none> 9d v1.24.6
Pcf01-worker-11 Ready <none> 9d v1.24.6
Pcf01-worker-12 Ready <none> 9d v1.24.6
Pcf01-worker-13 Ready <none> 9d v1.24.6
Pcf01-worker-14 Ready <none> 9d v1.24.6
Pcf01-worker-15 Ready <none> 9d v1.24.6
Pcf01-worker-16 Ready <none> 9d v1.24.6
Pcf01-worker-17 Ready <none> 9d v1.24.6
Pcf01-worker-18 Ready <none> 9d v1.24.6
Pcf01-worker-19 Ready <none> 9d v1.24.6
Pcf01-worker-2 Ready <none> 9d v1.24.6
Pcf01-worker-20 Ready <none> 9d v1.24.6
Pcf01-worker-21 Ready <none> 9d v1.24.6
Pcf01-worker-22 Ready <none> 9d v1.24.6
Pcf01-worker-23 Ready <none> 9d v1.24.6
Pcf01-worker-3 Ready <none> 9d v1.24.6
Pcf01-worker-4 Ready <none> 9d v1.24.6
Pcf01-worker-5 Ready <none> 9d v1.24.6
pcf01-worker-6 Ready <none> 9d v1.24.6
pcf01-worker-7 Ready <none> 9d v1.24.6
pcf01-worker-8 Ready <none> 9d v1.24.6
pcf01-worker-9 Ready <none> 9d v1.24.6
الخطوة 2. سجل الدخول إلى الشخصية المهمة الرئيسية واحصل على PGPOOL pod.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -i pgpool
cee-pcf01 pgpool-65fc8b8d5f-2w9nq 0/1 Running 3173 (3m58s ago) 22d xxx.xxx.xxx.xx pcf01-master-2 <none> <n
cloud-user@pcf01-master-1:~$
الخطوة 3. احذف PGPOOL pod.
cloud-user@pcf01-master-1:~$ kubectl delete pod <pgpool pod name> -n cee-pcf
الخطوة 4. تحقق من تشغيل PGPOOL الجديد بشكل صحيح.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -i pgpool
الخطوة 5. تحقق من مسح التنبيهات المتعلقة بpod PGPOOL على مركز عمليات شبكة إيثرنت المحسنة المجمعة.
[pcf01/pcfapp] cee# show alerts active summary