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.
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:
- 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?
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.