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:

  1. Utiliza las herramientas de validación de configuración automatizadas.
  2. Comprueba si tienes un problema habitual con una solución conocida.
  3. Acota el alcance del problema.
  4. Revisa los registros y la información pertinentes.
  5. Recopila los registros de diagnóstico y pide ayuda.

Usar herramientas de validación automatizadas

Cloud Service Mesh incluye herramientas automatizadas de diagnóstico y validación de la configuración que pueden resolver problemas y ayudarte a evitarlos en el futuro. En las secciones siguientes se explica cómo usar estas herramientas.

istioctl analyze

La herramienta de diagnóstico istioctl analyze puede detectar problemas de configuración habituales. Instala istioctl siguiendo estas instrucciones.

istioctl analyze lee una configuración de clúster y, si detecta un problema, proporciona mensajes informativos y sugiere soluciones. Puede ejecutarse en un clúster activo o en un conjunto de archivos de configuración locales. También se puede ejecutar en una combinación de ambos, lo que te permite encontrar problemas antes de aplicar cambios a un clúster. Para obtener más información, consulta el artículo Diagnosticar la configuración con istioctl analyze. Para obtener más información sobre los errores que detecta istioctl analyze, consulta Mensajes de análisis de configuración.

Analizar un clúster activo

Analiza un clúster activo con el siguiente comando.

istioctl analyze -A

Si istioctl analyze detecta un problema con tu configuración, mostrará un mensaje con información útil para resolverlo, si se conoce. Por ejemplo, si cometes el error habitual de no etiquetar correctamente tu espacio de nombres para habilitar la inyección de sidecar de Istio, se generará el siguiente mensaje:

Warn [IST0102] (Namespace default) The namespace is not enabled for Istio injection.
Run 'kubectl label namespace default istio-injection=enabled' to enable it,
or 'kubectl label namespace default istio-injection=disabled'
to explicitly mark it as not needing injection

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:

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?

Ver el estado del plano de control

Los siguientes comandos pueden ayudarte a comprender el estado del plano de control de Cloud Service Mesh:

  • 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

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.