Solucionar problemas de Cloud Service Mesh paso a paso
En esta sección se explica cómo solucionar problemas al usar Cloud Service Mesh. Si necesitas más ayuda, consulta el artículo Obtener asistencia.
Pasos para solucionar el problema
Sigue estos pasos generales para solucionar problemas de Cloud Service Mesh:
- Utiliza las herramientas de validación de configuración automatizadas.
- Comprueba si tienes un problema habitual con una solución conocida.
- Acota el alcance del problema.
- Revisa los registros y la información pertinentes.
- Recopila los registros de diagnóstico y pide ayuda.
La herramienta de diagnóstico de Cloud Service Mesh puede detectar problemas de configuración habituales. Instala la herramienta para solucionar problemas siguiendo estas instrucciones.
Antes de empezar
Asegúrate de que el contexto de kubeconfig de tu clúster esté disponible en tu archivo kubeconfig. Si no es así, ejecuta el siguiente comando:
gcloud container clusters get-credentials CLUSTER_NAME \ --location=CLUSTER_LOCATION --project=PROJECT_NAME
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre de tu clúster.CLUSTER_LOCATION
: la zona o la región de tu clúster.PROJECT_NAME
: el nombre del proyecto.
Comprueba que se hayan creado las credenciales predeterminadas de la aplicación. Si no lo son, ejecuta uno de los siguientes comandos:
gcloud auth application-default login --billing-project=PROJECT_NAME
gcloud auth application-default set-quota-project PROJECT_NAME
Sustituye
PROJECT_NAME
por el nombre de tu proyecto.
Ver el estado del plano de control
Los siguientes comandos pueden ayudarte a conocer el estado del plano de control de Cloud Service Mesh:
gestionados
Obtén la lista de estados de conexión de los clientes al plano de control de Cloud Service Mesh:
gcloud beta container fleet mesh debug proxy-status \ --membership=MEMBERSHIP_NAME \ --location=MEMBERSHIP_LOCATION \ --project=PROJECT_NAME
Haz los cambios siguientes:
MEMBERSHIP_NAME
: el nombre de tu suscripción.MEMBERSHIP_LOCATION
: la región de tu suscripción. Puedes consultar la ubicación de tu suscripción congcloud container fleet memberships list --project FLEET_PROJECT_ID
sustituyendoFLEET_PROJECT_ID
por el ID del proyecto de la flota.PROJECT_NAME
: el nombre del proyecto.
En la siguiente tabla se describen las posibles respuestas.
DESCONOCIDO (Valor predeterminado) La información de estado no está disponible o es desconocida. SYNCED El plano de control ha enviado la configuración al cliente y ha recibido una confirmación del cliente. ERROR El plano de control ha enviado la configuración al cliente y ha recibido un NACK del cliente. STALE El plano de control ha enviado la configuración al cliente, pero no ha recibido un ACK ni un NACK del cliente. NO ENVIADO La configuración no se ha enviado. N/A No aplicable No compatible Nuestra API para solucionar problemas no admite el estado de sincronización.
En el clúster
kubectl get pods -n istio-system
kubectl describe -n istio-system
- Para todos los pods de istio-system:
kubectl logs -n istio-system -l istio --all-containers
istioctl version
istioctl proxy-status
kubectl get configmap istio -o yaml && kubectl get configmap istio-sidecar-injector -o yaml
kubectl top pods -n istio-system
Usa los siguientes comandos para conocer la escala de la implementación:
kubectl get nodes
kubectl get services --all-namespaces
kubectl get pods --all-namespaces
Ver configuraciones de proxy
El siguiente comando puede ayudarte a entender las configuraciones del proxy de Cloud Service Mesh:
gestionados
gcloud beta container fleet mesh debug proxy-config POD_NAME.NAMESPACE \
--type=TYPE \
--membership=MEMBERSHIP_NAME \
--location=MEMBERSHIP_LOCATION \
--project=PROJECT_NAME
POD_NAME
: el nombre de tu Pod.NAMESPACE
: el espacio de nombres de tu pod.TYPE
: uno de los siguientes: clúster, listeners, rutas, endpoints, bootstrap, log, secret o all.MEMBERSHIP_NAME
: el nombre de tu suscripción.MEMBERSHIP_LOCATION
: la región de tu suscripción. Puedes consultar la ubicación de tu suscripción congcloud container fleet memberships list --project FLEET_PROJECT_ID
sustituyendoFLEET_PROJECT_ID
por el ID del proyecto de la flota.PROJECT_NAME
: el nombre del proyecto.
En el clúster
Usa istioctl proxy-config
para ver las configuraciones de proxy de los planos de control del clúster. Para obtener más información, consulta Depurar Envoy e istiod.
Si el problema persiste, consulta la siguiente sección para comprobar si ya se ha detectado.
Buscar problemas habituales y sus soluciones
Puede ahorrar tiempo comprobando si sus síntomas coinciden con un problema en estas secciones de problemas y soluciones habituales, agrupadas por área funcional de Cloud Service Mesh:
- Problemas de instalación
- Problemas con el plano de control gestionado
- Problemas de observabilidad
- Problemas de implementaciónGoogle Cloud
- Problemas con el proxy
- Problemas con los recursos
- Problemas de escalado
- Problemas de seguridad
- Problemas de gestión del tráfico
- Problemas con los webhooks
- Problemas con los proxies de sidecar
Si el problema persiste, consulta la siguiente sección.
Acotar el alcance del problema
Cloud Service Mesh consta de varias tecnologías que funcionan conjuntamente, lo que significa que determinados tipos de problemas están asociados a áreas funcionales o componentes concretos. Cada uno de estos componentes genera sus propios registros útiles. Antes de intentar analizar manualmente el volumen de información que proporcionan, acota el ámbito de la solución de problemas respondiendo a las siguientes preguntas:
- ¿El problema se produce en el plano de control o en el plano de datos (por ejemplo,
istiod
o proxies de Envoy)? - ¿En qué área funcional se produce el problema (por ejemplo, redes, telemetría, seguridad, etc.)?
- ¿Se ha perdido tráfico en toda la malla de servicios o en una implementación específica?
- ¿El problema aparece o empeora debido a la falta de capacidad para escalar el tráfico en la malla de servicios?
- ¿El problema provoca latencia u otros problemas de rendimiento?
- ¿Puedes reproducir el problema cuando quieras?
- ¿El problema ha empezado después de un cambio reciente en la configuración de Istio, GKE, etc.?
- ¿Hay un aumento o un pico de tráfico en la malla de servicios?
- ¿Este clúster tiene alguna función notable habilitada o implementaciones atípicas?
- ¿Observas un uso elevado de la CPU o la memoria? Si es así, ¿cuál es el uso previsto a gran escala?
- ¿Hay restricciones de cuota que deba tener en cuenta?
Revisa registros e información útiles
Una vez que haya acotado el problema, podrá centrarse en determinados registros e información de forma más eficaz. Para obtener información sobre los registros que genera Cloud Service Mesh y cómo interpretar la información que contienen, consulta Interpretar los registros de Cloud Service Mesh.