Recoger registros de Cloud Service Mesh
En las siguientes secciones se explica cómo recopilar los distintos registros de Cloud Service Mesh para solucionar problemas o ponerse en contacto con el equipo de Asistencia de Google.
Recoger registros con la herramienta de informe de errores
Cloud Service Mesh proporciona una herramienta automatizada de informes de errores que recoge los registros de diagnóstico pertinentes y te permite adjuntarlos a una incidencia de asistencia de Google.
Antes de empezar, asegúrate de que el contexto kubeconfig de tu clúster esté disponible en el archivo kubeconfig.
Iniciar la recogida de registros
Plano de control gestionado
Ejecuta la herramienta de informe de errores para recoger los registros:
gcloud beta container fleet mesh debug bug-report \ --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.PROJECT_NAME
: el nombre del proyecto.
Plano de control en clústeres
Ejecuta la herramienta de informe de errores para recoger los registros:
istioctl bug-report
Sube tu archivo de depuración
La herramienta crea un archivo de los registros y la configuración de tu malla en el directorio de trabajo. Puede descomprimir el archivo y usar las guías para solucionar problemas e intentar resolverlos por su cuenta. Sin embargo, si tienes un paquete de asistencia, puedes ponerte en contacto con el equipo de Asistencia de Google Cloud, que te indicará los pasos que debes seguir para subir de forma segura tu archivo de registro.
Recoger manualmente los registros de Cloud Service Mesh
En lugar de usar la herramienta de informes de errores de Cloud Service Mesh, en esta sección se explica cómo recoger manualmente todos los registros pertinentes.
Registros de acceso de Envoy
Los registros de acceso del proxy Envoy contienen información detallada que resulta útil para solucionar problemas. Sin embargo, debes habilitarlos y definir el nivel de detalle correcto.
Para obtener información sobre cómo interpretar el contenido de los registros, consulta Interpretar registros de Envoy.
Habilitar o inhabilitar los registros de Envoy
Para habilitar los registros de acceso del proxy Envoy, configura un archivo de superposición para Cloud Service Mesh en clúster o un ConfigMap para Cloud Service Mesh gestionado.
Aumentar el nivel de detalle de los registros
Para aumentar temporalmente el nivel de detalle de los registros, usa el siguiente comando. Este ajuste se deshace cuando se vuelve a crear el pod.
kubectl -n NAMESPACE debug --image istio/base --target istio-proxy -it POD_NAME -- curl -X POST http://localhost:15000/logging?level=debug
Para volver a definir el nivel de detalle de los registros como predeterminado, usa el siguiente comando:
kubectl -n NAMESPACE debug --image istio/base --target istio-proxy -it POD_NAME -- curl -X POST http://localhost:15000/logging?level=info
Escribir registros de Envoy en una carpeta
Para recoger los registros de acceso del proxy de Envoy y almacenarlos en una carpeta, usa el siguiente comando:
kubectl logs -l app=APPLICATION_NAME -c istio-proxy > /FILE_PATH
Para obtener más información, consulta Obtener los registros de acceso de Envoy.
Registros de Kubernetes
Kubernetes genera varios registros que contienen información sobre el comportamiento de los componentes de Istio, como istiod
, Ingress Gateway y los proxies. Puedes revisar estos registros para detectar errores, lo que podría reducir el ámbito de las posibles causas de un problema.
(Solo plano de control en clústeres) Captura los registros de istiod
con el siguiente comando:
kubectl -n istio-system logs $(kubectl -n istio-system get pods -lapp=istiod -oname) > ./LOGS_FOLDER/istiod.log
(Solo plano de control en el clúster) Captura los registros de Istio Ingress Gateway con el siguiente comando:
kubectl -n istio-system logs $(kubectl -n istio-system get pods -lapp=istio-ingressgateway -oname) > /FILE_PATH
Captura los registros de Istio Proxy con el siguiente comando:
kubectl -n WORKLOAD_NAMESPACE logs POD_NAME -c istio-proxy > ./LOGS_FOLDER/proxy.log
Volcado de configuración de Kubernetes
Esta información permite a los usuarios que no tienen acceso directo al clúster ver el estado de varios recursos e identificar posibles problemas de configuración. El siguiente comando escribe la configuración de Kubernetes en un archivo YAML:
for ns in `kubectl get namespaces -o=jsonpath='{.items[*].metadata.name}'` ; do echo "===NAMESPACE===" $ns >> ./LOGS_FOLDER/kubernetes.yaml ;kubectl get -oyaml -n $ns deploy,statefulset,job,ingress,endpoints,configmap,event,secret,service,istio-io >> ./LOGS_FOLDER/kubernetes.yaml; done
Volcado principal de Envoy
Por lo general, los volcados de memoria del núcleo de Envoy no son útiles para los usuarios finales. Sin embargo, el equipo de Asistencia de Google puede pedirte que los recojas como parte del proceso de solución de problemas siguiendo estos pasos.
Para configurar el kernel de forma que escriba los volcados de memoria principales de Envoy en un directorio en el que se pueda escribir, sigue estos pasos:
Añade la etiqueta
sidecar.istio.io/enableCoreDump=true
a un pod.Reinicia el pod para habilitar los volcados de memoria del núcleo de Envoy.
Copia el volcado del archivo principal del pod.
Configurar el proxy Envoy
La configuración detallada del proxy de Envoy contiene información adicional que puede ser útil para solucionar problemas. Puedes recoger esta información con el siguiente comando. En este ejemplo, ENDPOINT es uno de los siguientes (se muestran por orden de importancia):
- /certs
- /clusters
- /listeners
- /config_dump
- /memory
- /server_info
- /stats/prometheus
- /runtime
kubectl debug --image istio/base --target istio-proxy -itq POD_NAME -n NAMESPACE -- curl 127.0.0.1:15000/ENDPOINT > out.log