Optimizar los servicios de GKE con la asistencia de Gemini


En esta página se describe cómo puedes optimizar el rendimiento y la fiabilidad de tus implementaciones de Google Kubernetes Engine (GKE) con Gemini Cloud Assist, un colaborador basado en IA para Google Cloud. La asistencia de Gemini puede incluir recomendaciones, generación de código y solución de problemas.

Entre otras muchas ventajas, Gemini Cloud Assist puede ayudarte a conseguir lo siguiente:

  • Reducir costes: identifica los recursos inactivos, ajusta el tamaño de tus implementaciones y optimiza las configuraciones de autoescalado para minimizar los gastos innecesarios.
  • Mejorar la fiabilidad y la estabilidad: identifica de forma proactiva posibles problemas, como la diferencia entre versiones o la falta de presupuestos de interrupción de pods, para evitar el tiempo de inactividad y asegurar la resiliencia de las aplicaciones.
  • Optimizar cargas de trabajo de IA y aprendizaje automático: recibe ayuda para desplegar, gestionar y optimizar cargas de trabajo de IA y aprendizaje automático en GKE.
  • Simplifica la solución de problemas: analiza rápidamente los registros e identifica la causa principal de los errores, lo que te ahorrará tiempo y esfuerzo.

Esta página está dirigida a usuarios de GKE, operadores y desarrolladores que aprovisionan y configuran recursos en la nube, y que implementan aplicaciones y servicios. Para obtener más información sobre los roles habituales y las tareas de ejemplo a los que se hace referencia en el contenido de Google Cloud , consulta Roles y tareas de usuario habituales de GKE.

Consulta cómo y cuándo Gemini Google Cloud usa tus datos.

Costes

  • Gemini durante la versión preliminar, no se cobra por usar Gemini Cloud Assist.

  • GKE no hay costes adicionales por usar Gemini Cloud Assist en GKE.

Antes de empezar

Para empezar a usar Gemini con GKE, completa los siguientes requisitos previos.

En esta guía se da por hecho que tienes un clúster de GKE y, preferiblemente, algunas implementaciones en ejecución.

Preguntar a Gemini Cloud Assist

Puedes invocar Gemini Cloud Assist desde la Google Cloud consola. Gemini Cloud Assist te permite usar peticiones en lenguaje natural para obtener ayuda con las tareas de forma rápida y eficiente.

Para abrir Cloud Assist desde una página de GKE, sigue estos pasos:

  1. En la Google Cloud consola, en la página del selector de proyectos, selecciona un Google Cloud proyecto en el que hayas habilitado Gemini Cloud Assist.

    Ir al selector de proyectos

  2. En la Google Cloud consola, ve a una página específica de la consola Kubernetes Engine.

    Por ejemplo, ve a la página Descripción general de Kubernetes Engine.

    Ir a la descripción general de Kubernetes Engine

    Si tienes alguna pregunta sobre un recurso concreto, ve primero a la página correspondiente. Por ejemplo, en la página Clusters (Clusters), Gemini Cloud Assist puede darte consejos sobre cómo gestionar tus clústeres, monitorizar su estado y solucionar problemas relacionados con ellos. Usar Gemini en una página de consola específica Google Cloud ayuda a proporcionar contexto para tus preguntas. Gemini puede usar este contexto, junto con el proyecto en el que te encuentres, para ofrecerte una asistencia más personalizada y precisa.

  3. Para abrir el panel de Gemini Cloud Assist, haz clic en el icono de chispa Abrir o cerrar el chat de IA de Gemini de la barra de herramientas.

  4. Si se te pide y aceptas los términos, haz clic en Aceptar.

  5. Introduce una petición en el panel de Gemini. En la siguiente sección se muestra un ejemplo de flujo de trabajo para usar Gemini y solucionar problemas.

Para obtener más información sobre cómo usar Gemini en la Google Cloud consola, consulta Usar Gemini Cloud Assist.

Ejemplo de uso de Gemini para solucionar problemas

Gemini puede ayudarte a solucionar problemas en tus servicios de GKE.

  1. Ve a la página Cargas de trabajo de la Google Cloud consola.

    Ve a Cargas de trabajo.

  2. Selecciona la carga de trabajo con la que quieres solucionar problemas.

  3. Haz clic en la pestaña Registros.

  4. En la barra de herramientas, haz clic en el icono de chispa Abrir o cerrar el chat de IA de Gemini.

  5. Introduce una petición que describa el problema que estás experimentando. Por ejemplo, "My accounts-db database application is experiencing high latency" ("Mi aplicación de base de datos accounts-db tiene una latencia alta"). Gemini puede pedirte más contexto, como el tipo de base de datos o el alcance del impacto, como las operaciones y los usuarios afectados por la latencia.

  6. Gemini puede ofrecerte instrucciones para analizar los registros por tu cuenta y sugerencias para solucionar los problemas.

  7. Revisa las sugerencias y síguelas para solucionar el problema.

Ejemplos de peticiones para Gemini Cloud Assist

En esta sección se muestran algunos casos prácticos reales y se sugieren las peticiones que puedes probar a hacerle a Gemini. Las respuestas que recibas pueden ser genéricas o personalizadas y prácticas en función del estado único de tuGoogle Cloud entorno. Las respuestas pueden incluir Google Cloud enlaces a la consola para revisar y gestionar tus recursos de Cloud, así como enlaces a la documentación pertinente para obtener más información.

Reduce los costes

En la siguiente tabla se describen las peticiones que puedes usar para reducir los costes.

Petición Tipo de respuesta
"¿Cómo puedo ahorrar costes en mis clústeres de GKE sin sacrificar el rendimiento?"
  • Recomendaciones que identifican y sugieren la eliminación de recursos infrautilizados, como los clústeres inactivos.
  • Consejos sobre cómo habilitar o ajustar los mecanismos de autoescalado.
  • Sugerencias que destacan posibles ahorros mediante revisiones de configuración, como las políticas de conservación de registros.
"Quiero actualizar mi clúster de my-docker-cluster GKE. ¿Tienes alguna recomendación?" Sugerencias para implementar configuraciones y prácticas recomendadas específicas de Kubernetes, como las siguientes:
  • Definir solicitudes y límites de recursos para los pods con el fin de asegurar una asignación de recursos predecible.
  • Usar espacios de nombres dedicados para aislar las cargas de trabajo.
  • Implementar presupuestos de interrupción de pods para asegurarse de que haya un número mínimo de réplicas de pods disponibles durante las interrupciones voluntarias, como el mantenimiento o las actualizaciones de nodos.
  • Programar ventanas de mantenimiento para gestionar las interrupciones planificadas y minimizar el tiempo de inactividad inesperado.
  • Registrar clústeres en canales de lanzamiento para gestionar las actualizaciones de versiones de GKE.
"Dentro de un par de semanas, voy a tener un gran pico de tráfico en el clúster my-docker-cluster. ¿Tienes alguna recomendación?"
  • Estrategias para escalar el número de pods de aplicaciones mediante el autoescalador horizontal de pods.
  • Estrategias para aumentar los recursos (CPU y memoria) por pod mediante la herramienta de adaptación dinámica vertical de pods.
"¿Qué cargas de trabajo de GKE no tienen habilitado el escalado automático horizontal?" Lista de cargas de trabajo que no tienen habilitada la herramienta de adaptación dinámica horizontal de pods.

Mejorar la fiabilidad y la estabilidad

En la siguiente tabla se describen las peticiones que puedes usar para mejorar la fiabilidad y la estabilidad de tus cargas de trabajo de GKE.

Petición Tipo de respuesta
"¿Cómo puedo hacer que mis clústeres de GKE sean más fiables y evitar el tiempo de inactividad?"
  • Identifica las diferencias de versión en los clústeres y sugiere acciones para mantener la compatibilidad de las versiones de Kubernetes.
  • Proporciona recomendaciones para implementar el aislamiento de recursos.
  • Proporciona recomendaciones para configurar presupuestos de interrupción de pods con el fin de mantener un número mínimo de réplicas de pods en ejecución durante el mantenimiento o las actualizaciones planificados.
"Muéstrame cómo puedo mover mis cargas de trabajo del espacio de nombres Default en my-cluster". Pasos para hacerlo:
  • Prepara un clúster de destino.
  • Migra las aplicaciones y los datos al clúster de destino.
  • Cambia los servicios con un tiempo de inactividad mínimo.
"¿Cómo puedo asegurarme de que mis pods en ejecución tengan una alta disponibilidad?"
  • Un procedimiento detallado que especifica un Deployment que usa podAntiAffinity y varias réplicas para la redundancia.
  • Sugerencias para definir solicitudes y límites de recursos, y para usar el autoescalado horizontal de pods.

Optimizar GKE para cargas de trabajo de IA y aprendizaje automático

En la siguiente tabla se describen las peticiones que puedes usar para obtener ayuda con la implementación, la gestión y la optimización de cargas de trabajo de IA y aprendizaje automático en GKE.

Petición Tipo de respuesta
"¿Cuáles son las configuraciones de grupos de nodos recomendadas para ejecutar un entrenamiento de TensorFlow distribuido a gran escala en GKE con GPUs?" Estas son algunas recomendaciones para optimizar el entrenamiento de aprendizaje automático distribuido de TensorFlow en GKE:
  • Seleccionar los tipos de GPU y de máquina adecuados.
  • Habilitar el autoescalado.
  • Optimizar la conectividad de red.
  • Aprovechar los frameworks de entrenamiento distribuido.
  • Implementar medidas de ahorro de costes.
"¿Cómo puedo usar GPUs en GKE para entrenar modelos?" Resumen de los pasos y las consideraciones para configurar un clúster y cargas de trabajo para usar GPUs.
"Dame un ejemplo de cómo desplegar un contenedor de servicio de modelos en GKE". Un ejemplo con código de muestra para desplegar un contenedor de servicio de modelos en GKE. El ejemplo puede incorporar prácticas recomendadas y ayuda a garantizar la escalabilidad.
"¿Qué métricas debo monitorizar para evaluar la eficacia de mi configuración de balanceo de carga para la inferencia?" La lista de métricas, como la distribución del tráfico, la latencia, las tasas de errores, la CPU y la utilización de la memoria, para obtener información valiosa sobre el rendimiento y el estado de la configuración del balanceo de carga.

Simplificar la solución de problemas

En la siguiente tabla se describen las peticiones que puedes usar para analizar rápidamente los registros e identificar la causa principal de los errores, lo que te ahorrará tiempo y esfuerzo.

Petición Tipo de respuesta
"¿De qué trata este error?
Readiness probe failed: Get "https://10…./abcd": context deadline exceeded (Client.Timeout exceeded while awaiting headers)"
Explica que el kubelet no ha podido ejecutar la prueba de disponibilidad del contenedor en el periodo de tiempo de espera definido y sugiere posibles causas y acciones para solucionar el problema.
"¿Por qué falla mi implementación de nettools con el error ping: socket: Operation not permitted?" Explica que el comando ping requiere la función CAP_NET_RAW Security Context y que, de forma predeterminada, los contenedores de Kubernetes se ejecutan con un conjunto de funciones restringido por motivos de seguridad.
"¿Qué significa que mi pod no se pueda programar debido al error Cannot schedule pods: No preemption victims found for incoming pod.?" Explica cómo funcionan la programación y la expropiación de pods en Kubernetes. Se indican los pasos para solucionar el problema por el que no se ha encontrado ninguna víctima de la apropiación.

Siguientes pasos