Introducción
Este documento describe el procedimiento para resolver problemas de Pod no preparado de Kubernetes que se ve en la función de control de políticas (PCF).
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
- PCF
- Plataforma de implementación nativa en la nube (CNDP) 5G
- Dockers y Kubernetes
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- PCF REL_2023.01.2
- Kubernetes v1.24.6
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
En esta configuración, el CNDP aloja el PCF.
Cuando un POD de Kubernetes está en estado 'No preparado', significa que el POD no puede actualmente servir tráfico porque uno o más de sus contenedores no están en estado preparado. Esto puede deberse a varias razones, como que los contenedores aún se están iniciando, que no se han realizado las comprobaciones de estado o que se han producido errores.
Problema
Verá alertas sobre las vainas del Entorno de ejecución común (CEE) para Kubernetes (K8), estado no preparado.
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...
Análisis
Enfoque 1
Después de iniciar sesión en un nodo de Kubernetes (K8s), verifique las alertas de un nodo que actualmente esté en estado 'No preparado'.
Es recomendable comprobar cualquier proceso de actualización o mantenimiento. En ese momento, el grupo de dispositivos se puede desconectar para aplicar actualizaciones, instalar nuevo software o realizar otras tareas necesarias. o realizar actividades de mantenimiento continuas que pueden afectar a la disponibilidad del grupo de dispositivos.
Se espera que los grupos de servidores espejo se encuentren en el estado mencionado durante la actividad de actualización del sitio en el sitio par (GR).
Conéctese al nodo maestro y verifique el estado del grupo de dispositivos reflejado.
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.
Enfoque 2
Si recibe alertas que indican que un grupo de dispositivos de Kubernetes (K8) no está en estado listo dentro de CEE, esto sugiere que el grupo de dispositivos está experimentando problemas y no se puede considerar completamente operativo. Este estado normalmente implica que el grupo de dispositivos no puede aceptar tráfico ni cumplir la función que se pretende.
Analice las alertas y la información relacionada para comprender la causa del estado 'No preparado'. Las alertas pueden proporcionar detalles sobre el problema o desencadenador específico que provocó el cambio de estado del nodo. Entre los motivos habituales por los que un nodo se encuentra en estado 'No preparado' se incluyen las restricciones de recursos, los problemas de conectividad de red, los errores de hardware o los problemas de configuración.
Paso 1. Verifique el estado de la vaina mediante elkubectl get pods
comando para verificar el estado de la vaina y buscar el estado de la vaina. Si el grupo de dispositivos no está listo, puede mostrar un estado como 'Pendiente', 'CrashLoopBackOff' o '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
Paso 2. Inicie sesión en el VIP principal y obtenga el grupo de dispositivos pgpool.
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:~$
Paso 3. Elimine el grupo de dispositivos pgpool.
cloud-user@pcf01-master-1:~$ kubectl delete pod <pgpool pod name> -n cee-pcf
Paso 4. Verifique que el nuevo grupo de dispositivos pgpool se esté ejecutando correctamente.
cloud-user@pcf01-master-1:~$ kubectl get pods -A -o wide | grep -i pgpool
Paso 5. Verifique que las alertas relacionadas con el grupo de dispositivos pgpool se hayan borrado en el centro de operaciones de CEE.
[pcf01/pcfapp] cee# show alerts active summary