Solución de problemas en la Anthos Service Mesh paso a paso

En esta sección, se explica cómo solucionar problemas relacionados con el uso de Anthos Service Mesh. Si necesitas asistencia adicional, consulta Obtén asistencia.

Pasos para la solución de problemas

Sigue estos pasos generales para solucionar los problemas de Anthos Service Mesh de la mejor manera:

  1. Usa las herramientas automatizadas de validación de configuración.
  2. Comprueba si tienes un problema común con una solución conocida.
  3. Limita el alcance del problema.
  4. Revisa la información y los registros relevantes.
  5. Recopila registros de diagnóstico y busca ayuda.

Errores kpt durante la instalación

Cuando instalas Anthos Service Mesh mediante install_asm con una versión de kpt no compatible, install_asm muestra los siguientes mensajes de error:

    2021-07-14T15:54:58.380312 install_asm_1_9_3: Downloading ASM..
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 41.7M  100 41.7M    0     0  31.1M      0  0:00:01  0:00:01 --:--:-- 31.1M
    2021-07-14T15:54:59.777425 install_asm_1_9_3: Downloading ASM kpt package...
    2021-07-14T15:54:59.805267 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:54:59.832100 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:54:59.907493 install_asm_1_9_3: [WARNING]: Failed, retrying...(1 of 3)
    2021-07-14T15:55:01.936275 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:55:01.963543 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:55:02.043638 install_asm_1_9_3: [WARNING]: Failed, retrying...(2 of 3)
    2021-07-14T15:55:04.074541 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:55:04.101990 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:55:04.176750 install_asm_1_9_3: [WARNING]: Failed, retrying...(3 of 3)
    

Si ves estos errores, descarga la versión más reciente de install_asm. La secuencia de comandos install_asm debe ser una de las siguientes versiones o una posterior:

  • Para las versiones 1.8: 1.8.6-asm.5+config1
  • Para las versiones 1.9: 1.9.6-asm.2+config1
  • Para las versiones 1.10: 1.10.2-asm.3+config1

Si descargas anthos-service-mesh-package para instalar Anthos Service Mesh mediante istioctl install y tienes una versión no compatible de kpt, verás los siguientes mensajes de error:

    Package "asm":
    Fetching https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages@release-1.10-asm
    From https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages
     * branch            release-1.10-asm -> FETCH_HEAD
    Error: Kptfile at "https:/github.com/GoogleCloudPlatform/anthos-service-mesh-packages/asm@release-1.10-asm" has an old version ("v1alpha1") of the Kptfile schema.
    Please update the package to the latest format by following https://kpt.dev/installation/migration.
    

La instalación de Anthos Service Mesh requiere una versión anterior a 1.x de kpt. Se requiere que tu sesión de shell esté configurada para usar la versión 0.39.2 de kpt. Puedes ejecutar el siguiente comando para obtener la versión de kpt:

   kpt version

El resultado es similar al siguiente:

    0.39.2

Si tienes una versión de kpt superior a la versión 1.0, consulta Descarga la versión de kpt requerida para descargar la versión necesaria.

Usa herramientas de validación automatizadas

Anthos 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 siguientes secciones, se explica cómo usar estas herramientas.

istioctl analyze

La herramienta de diagnóstico istioctl analyze puede detectar problemas de configuración comunes. Instala istioctl mediante estas instructions.

istioctl analyze lee la configuración del clúster y, si encuentra un problema, proporciona mensajes informativos y sugiere soluciones. Puede ejecutarse en un clúster en vivo o en un conjunto de archivos de configuración local. También puede ejecutarse 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 Diagnostica tu 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.

Analiza un clúster en vivo

Analiza un clúster en vivo con el siguiente comando.

istioctl analyze -A

Si istioctl analyze detecta un problema con la configuración, mostrará un mensaje con información útil para resolverlo, si la hay. Por ejemplo, si cometiste el error común de no etiquetar de forma correcta tu espacio de nombres a fin de habilitar la inserción de sidecar de Istio, genera 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 verificar si el problema ya es conocido.

Verifica problemas y soluciones comunes

Para ahorrar tiempo, comprueba si tus síntomas coinciden con alguno de los problemas en estas secciones de problemas y soluciones comunes, agrupadas por áreas funcionales de Anthos Service Mesh:

Si esto no resuelve el problema, consulta la siguiente sección.

Limita el alcance del problema

Anthos 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?

Visualiza el estado del plano de control

Los siguientes comandos pueden brindarte información sobre el estado del plano de control de Anthos 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 obtener información sobre el escalamiento de la implementación:

  • kubectl get nodes
  • kubectl get services --all-namespaces
  • kubectl get pods --all-namespaces

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. A fin de obtener más información sobre los registros que genera Anthos Service Mesh y cómo interpretar la información que contienen, consulta Interpreta los registros de la Anthos Service Mesh.