Soluciona los problemas de Cloud Service Mesh paso a paso
En esta sección, se explica cómo solucionar problemas cuando se usa Cloud Service Mesh. Si necesitas asistencia adicional, consulta Obtén asistencia.
Pasos para solucionar problemas
Sigue estos pasos generales para solucionar problemas de Cloud Service Mesh:
- Usa las herramientas automatizadas de validación de configuración.
- Comprueba si tienes un problema común con una solución conocida.
- Limita el alcance del problema.
- Revisa la información y los registros relevantes.
- Recopila registros de diagnóstico y busca ayuda.
La herramienta de diagnóstico de Cloud Service Mesh puede detectar problemas comunes de configuración. Instala la herramienta de solución de problemas siguiendo estas instructions.
Antes de comenzar
Asegúrate de que el contexto kubeconfig para el clúster esté disponible en tu archivo kubeconfig. De lo contrario, ejecuta el siguiente comando:
gcloud container clusters get-credentials CLUSTER_NAME \ --location=CLUSTER_LOCATION --project=PROJECT_NAME
Reemplaza lo siguiente:
CLUSTER_NAME
: es el nombre de tu clúster.CLUSTER_LOCATION
: Es la zona o región del clúster.PROJECT_NAME
: Nombre del proyecto.
Verifica que se creen las credenciales predeterminadas de la aplicación. De lo contrario, ejecuta uno de los siguientes comandos:
gcloud auth application-default login --billing-project=PROJECT_NAME
gcloud auth application-default set-quota-project PROJECT_NAME
Reemplaza
PROJECT_NAME
por el nombre de tu proyecto.
Visualiza el estado del plano de control
Los siguientes comandos pueden ayudarte a comprender el estado del plano de control de Cloud Service Mesh:
Administrado
Obtén la lista de los estados de conexión de los clientes con el plano de control de Cloud Service Mesh:
gcloud beta container fleet mesh debug proxy-status \ --membership=MEMBERSHIP_NAME \ --location=MEMBERSHIP_LOCATION \ --project=PROJECT_NAME
Reemplaza lo siguiente:
MEMBERSHIP_NAME
: El nombre de la membresíaMEMBERSHIP_LOCATION
: Es la región de la membresía. Puedes verificar la ubicación de tu membresía congcloud container fleet memberships list --project FLEET_PROJECT_ID
y reemplazaFLEET_PROJECT_ID
por el ID del proyecto de la flota.PROJECT_NAME
: Nombre del proyecto.
En la siguiente tabla, se describen las respuestas posibles.
DESCONOCIDO (Predeterminado) La información del estado no está disponible o se desconoce. SINCRONIZADO El plano de control envió la configuración al cliente y recibió un ACK del cliente. ERROR El plano de control envió la configuración al cliente y recibió un NACK del cliente. INACTIVA El plano de control envió la configuración al cliente, pero no recibió un ACK o NACK del cliente. NO ENVIADO No se envió la configuración. N/A No aplicable No compatible El estado de sincronización no es compatible con nuestra API de solución de problemas.
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 obtener información sobre el escalamiento de la implementación:
kubectl get nodes
kubectl get services --all-namespaces
kubectl get pods --all-namespaces
Ver configuraciones del proxy
El siguiente comando puede ayudarte a comprender la configuración del proxy de Cloud Service Mesh:
Administrado
gcloud beta container fleet mesh debug proxy-config POD_NAME.NAMESPACE \
--type=TYPE \
--membership=MEMBERSHIP_NAME \
--location=MEMBERSHIP_LOCATION \
--project=PROJECT_NAME
POD_NAME
: es el nombre del Pod.NAMESPACE
: es el espacio de nombres del Pod.TYPE
: Es uno de los siguientes: clúster, objetos de escucha, rutas, extremos, arranque, registro, secreto, todo.MEMBERSHIP_NAME
: El nombre de la membresíaMEMBERSHIP_LOCATION
: Es la región de la membresía. Puedes verificar la ubicación de tu membresía congcloud container fleet memberships list --project FLEET_PROJECT_ID
y reemplazaFLEET_PROJECT_ID
por el ID del proyecto de la flota.PROJECT_NAME
: Nombre del proyecto.
En el clúster
Usa istioctl proxy-config
para ver la configuración de proxy de los planos de control en el clúster. Para obtener más información, consulta Depura Envoy e istiod.
Si el problema persiste, consulta la siguiente sección para verificar si el problema ya es conocido.
Verifica problemas y soluciones comunes
Para ahorrar tiempo, verifica si tus síntomas coinciden con algún problema en estas secciones de problemas y soluciones comunes, agrupadas por área funcional de Cloud Service Mesh:
- Problemas de instalación
- Problemas del plano de control administrado
- Problemas de observabilidad
- Problemas de implementación fuera de Google Cloud
- Problemas relacionados con el proxy
- Problemas de recursos
- Problemas de escalamiento
- Problemas de seguridad
- Problemas con la administración del tráfico
- Problemas de webhook
- Problemas con los proxies de sidecar
Si esto no resuelve el problema, consulta la siguiente sección.
Limita el alcance del problema
Cloud Service Mesh consta de varias tecnologías que funcionan juntas, lo que significa que ciertos tipos de problemas están asociados con áreas o componentes funcionales en particular. Cada uno de estos componentes genera registros propios útiles. Antes de intentar analizar de forma manual el volumen de la información que proporcionan, puedes responder las siguientes preguntas para limitar el alcance de la solución de problemas:
- ¿El problema se produce dentro del plano de control o del plano de datos, por ejemplo, en los proxies
istiod
o Envoy? - ¿En qué área funcional experimentas el problema, por ejemplo, en las herramientas de redes, la telemetría, la seguridad, etcétera?
- ¿Existe una pérdida de tráfico en la malla de servicios o en una implementación específica?
- ¿El problema aparece o empeora debido a la imposibilidad de escalar tráfico en la malla de servicios?
- ¿Hay problemas de latencia o de rendimiento?
- ¿Puedes reproducir el problema a pedido?
- ¿El problema comenzó después de un cambio de configuración reciente en Istio, GKE, etcétera?
- ¿Hay un aumento prolongado o repentino en el tráfico dentro de la malla de servicios?
- ¿Este clúster tiene funciones notables habilitadas o implementaciones que no son típicas?
- ¿Observas un uso elevado de memoria o CPU? Si es así, ¿cuál es el uso esperado a gran escala?
- ¿Existen restricciones de cuota para tener en cuenta?
Revisa la información y los registros relevantes
Después de limitar el alcance del problema, podrás enfocarte en la información y los registros de manera 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.