Visualizando su Malla
Esta tarea muestra cómo visualizar diferentes aspectos de su malla de Istio.
Como parte de esta tarea, instalará el addon Kiali y utilizará la interfaz gráfica de usuario basada en web para ver los gráficos de service de la malla y sus objetos de configuración de Istio.
Esta tarea utiliza la application de ejemplo Bookinfo como ejemplo. Esta tarea
asume que la application Bookinfo está instalada en el namespace bookinfo
.
Antes de empezar
Siga la documentación de instalación de Kiali para desplegar Kiali en su cluster.
Generar un gráfico
Para verificar que el service se está ejecutando en su cluster, ejecute el siguiente comando:
$ kubectl -n istio-system get svc kiali
Para determinar la URL de Bookinfo, siga las instrucciones para determinar la IP de ingress y el puerto de Bookinfo
GATEWAY_URL
.Para enviar tráfico a la malla, tiene tres opciones
Visite
http://$GATEWAY_URL/productpage
en su navegador webUse el siguiente comando varias veces:
$ curl http://$GATEWAY_URL/productpage
Si instaló el comando
watch
en su sistema, envíe solicitudes continuamente con:$ watch -n 1 curl -o /dev/null -s -w %{http_code} $GATEWAY_URL/productpage
Para abrir la UI de Kiali, ejecute el siguiente comando en su entorno Kubernetes:
$ istioctl dashboard kiali
Vea la descripción general de su malla en la página Overview que aparece inmediatamente después de iniciar sesión. La página Overview muestra todos los namespaces que tienen services en su malla. La siguiente captura de pantalla muestra una página similar:
Ejemplo de Descripción General Para ver un gráfico de namespace, seleccione la opción
Graph
en el menú kebab de la tarjeta de descripción general de Bookinfo. El menú kebab está en la parte superior derecha de la tarjeta y parece 3 puntos verticales. Haga clic en él para ver las opciones disponibles. La página se parece a:Ejemplo de Gráfico El gráfico representa el tráfico que fluye a través de la service mesh durante un período de tiempo. Se genera utilizando la telemetría de Istio.
Para ver un resumen de las métricas, seleccione cualquier nodo o borde en el gráfico para mostrar sus detalles de métricas en el panel de detalles de resumen a la derecha.
Para ver su service mesh usando diferentes tipos de gráficos, seleccione un tipo de gráfico del menú desplegable Graph Type. Hay varios tipos de gráficos para elegir: App, Versioned App, Workload, Service.
El tipo de gráfico App agrega todas las versiones de una app en un solo nodo de gráfico. El siguiente ejemplo muestra un solo nodo reviews que representa las tres versiones de la app de reviews. Tenga en cuenta que la opción de visualización
Show Service Nodes
se ha deshabilitado.Ejemplo de Gráfico de App El tipo de gráfico Versioned App muestra un nodo para cada versión de una app, pero todas las versiones de una app en particular se agrupan. El siguiente ejemplo muestra el cuadro de grupo reviews que contiene los tres nodos que representan las tres versiones de la app de reviews.
Ejemplo de Gráfico de App Versionada El tipo de gráfico Workload muestra un nodo para cada workload en su service mesh. Este tipo de gráfico no requiere que use las etiquetas
app
yversion
, por lo que si opta por no usar esas etiquetas en sus componentes, este puede ser su tipo de gráfico preferido.Ejemplo de Gráfico de Workload El tipo de gráfico Service muestra una agregación de alto nivel del tráfico de service en su malla.
Ejemplo de Gráfico de Service
Examinar la configuración de Istio
Las opciones del menú izquierdo conducen a vistas de lista para Applications, Workloads, Services y Istio Config. La siguiente captura de pantalla muestra la información de Services para el namespace Bookinfo:
Ejemplo de Detalles
Desplazamiento de Tráfico
Puede usar el asistente de desplazamiento de tráfico de Kiali para definir el porcentaje específico de tráfico de solicitud que se enrutará a dos o más workloads.
Vea el gráfico de la aplicación versionada del gráfico
bookinfo
.Asegúrese de haber habilitado la opción Traffic Distribution Edge Label Display para ver el porcentaje de tráfico enrutado a cada workload.
Asegúrese de haber habilitado la opción Show Service Nodes Display para ver los nodos de service en el gráfico.
Opciones del Gráfico de Bookinfo Concéntrese en el service
ratings
dentro del gráficobookinfo
haciendo clic en el nodo del serviceratings
(triángulo). Observe que el tráfico del serviceratings
se distribuye uniformemente a los dos workloadsratings
v1
yv2
(el 50% de las solicitudes se enrutan a cada workload).Gráfico que Muestra el Porcentaje de Tráfico Haga clic en el enlace ratings que se encuentra en el panel lateral para ir a la vista detallada del service
ratings
. Esto también se podría hacer haciendo clic secundario en el nodo del serviceratings
y seleccionandoDetails
en el menú contextual.En el menú desplegable Actions, seleccione Traffic Shifting para acceder al asistente de desplazamiento de tráfico.
Menú de Acciones del Service Arrastre los controles deslizantes para especificar el porcentaje de tráfico que se enrutará a cada workload. Para
ratings-v1
, configúrelo en 10%; pararatings-v2
, configúrelo en 90%.Asistente de Enrutamiento Ponderado Haga clic en el botón Preview para ver el YAML que generará el asistente.
Vista Previa del Asistente de Enrutamiento Haga clic en el botón Create y confirme para aplicar la nueva configuración de tráfico.
Haga clic en Graph en la barra de navegación izquierda para volver al gráfico
bookinfo
. Observe que el nodo del serviceratings
ahora tiene la insignia del icono devirtual service
.Envíe solicitudes a la application
bookinfo
. Por ejemplo, para enviar una solicitud por segundo, puede ejecutar este comando si tienewatch
instalado en su sistema:$ watch -n 1 curl -o /dev/null -s -w %{http_code} $GATEWAY_URL/productpage
Después de unos minutos, notará que el porcentaje de tráfico reflejará la nueva ruta de tráfico, confirmando así el hecho de que su nueva ruta de tráfico está enrutando con éxito el 90% de todas las solicitudes de tráfico a
ratings-v2
.90% del Tráfico de Ratings Enrutado a ratings-v2
Validar la configuración de Istio
Kiali puede validar sus recursos de Istio para asegurar que sigan las convenciones y semánticas adecuadas. Cualquier problema detectado en la configuración de sus recursos de Istio puede ser marcado como errores o advertencias dependiendo de la gravedad de la configuración incorrecta. Consulte la página de validaciones de Kiali para ver la lista de todas las comprobaciones de validación que realiza Kiali.
Fuerce una configuración inválida del nombre de puerto de un service para ver cómo Kiali informa un error de validación.
Cambie el nombre del puerto del service
details
dehttp
afoo
:$ kubectl patch service details -n bookinfo --type json -p '[{"op":"replace","path":"/spec/ports/0/name", "value":"foo"}]'
Navegue a la lista de Services haciendo clic en Services en la barra de navegación izquierda.
Seleccione
bookinfo
en el menú desplegable Namespace si aún no está seleccionado.Observe el icono de error que se muestra en la columna Configuration de la fila
details
.Lista de Services que Muestra Configuración Inválida Haga clic en el enlace details en la columna Name para navegar a la vista de detalles del service.
Pase el cursor sobre el icono de error para mostrar una sugerencia que describe el error.
Detalles del Service que Describen la Configuración Inválida Cambie el nombre del puerto de nuevo a
http
para corregir la configuración y devolverbookinfo
a su estado normal.$ kubectl patch service details -n bookinfo --type json -p '[{"op":"replace","path":"/spec/ports/0/name", "value":"http"}]'
Detalles del Service que Muestran Configuración Válida
Ver y editar el YAML de configuración de Istio
Kiali proporciona un editor YAML para ver y editar los recursos de configuración de Istio. El editor YAML también proporcionará mensajes de validación cuando detecte configuraciones incorrectas.
Introduzca un error en el VirtualService
bookinfo
$ kubectl patch vs bookinfo -n bookinfo --type json -p '[{"op":"replace","path":"/spec/gateways/0", "value":"bookinfo-gateway-invalid"}]'
Haga clic en
Istio Config
en la barra de navegación izquierda para navegar a la lista de configuración de Istio.Seleccione
bookinfo
en el menú desplegable Namespace si aún no está seleccionado.Observe el icono de error que le alerta de un problema de configuración.
Lista de Configuración de Istio con Configuración Incorrecta Haga clic en el icono de error en la columna Configuration de la fila
bookinfo
para navegar a la vista del virtual servicebookinfo
.La pestaña YAML está preseleccionada. Observe los resaltados de color y los iconos en las filas que tienen notificaciones de verificación de validación asociadas.
Editor YAML que Muestra Notificaciones de Validación Pase el cursor sobre el icono rojo para ver el mensaje de la sugerencia que le informa de la verificación de validación que activó el error. Para obtener más detalles sobre la causa del error y cómo resolverlo, busque el mensaje de error de validación en la página de Validaciones de Kiali.
Editor YAML que Muestra la Sugerencia de Error Restablezca el virtual service
bookinfo
a su estado original.$ kubectl patch vs bookinfo -n bookinfo --type json -p '[{"op":"replace","path":"/spec/gateways/0", "value":"bookinfo-gateway"}]'
Features Adicionales
Kiali tiene muchas más features de las revisadas en esta tarea, como una integración con el trazado de Jaeger.
Para obtener más detalles sobre estas features adicionales, consulte la documentación de Kiali.
Para una exploración más profunda de Kiali, se recomienda realizar el Tutorial de Kiali.
Limpieza
Si no planea realizar ninguna tarea de seguimiento, elimine la application de ejemplo Bookinfo y Kiali de su cluster.
Para eliminar la application Bookinfo, consulte las instrucciones de limpieza de Bookinfo.
Para eliminar Kiali de un entorno Kubernetes:
$ kubectl delete -f https://raw.githubusercontent.com/istio/istio/release-1.27/samples/addons/kiali.yaml