Autopilot es un modo de funcionamiento gestionado de Google Kubernetes Engine (GKE). En esta página se describen las ventajas del modo Autopilot y se proporciona información sobre la planificación de clústeres, la implementación de cargas de trabajo y la configuración de redes y seguridad. Los administradores, los arquitectos y los operadores pueden usar esta información para tomar decisiones fundamentadas al evaluar cómo se adapta el modo Autopilot de GKE a los requisitos operativos de sus cargas de trabajo contenerizadas.
Para obtener más información sobre las diferencias entre los modos de funcionamiento de GKE, consulta Comparar Autopilot y Estándar de GKE.
¿Qué es Autopilot?
Autopilot de GKE es un modo de funcionamiento de GKE en el que Google gestiona la configuración de tu infraestructura, incluidos los nodos, el escalado, la seguridad y otros ajustes preconfigurados. El modo Autopilot está optimizado para ejecutar la mayoría de las cargas de trabajo de producción y aprovisiona recursos de computación en función de tus manifiestos de Kubernetes.
Puedes ejecutar un clúster completo en el modo Autopilot para que el clúster y todas sus cargas de trabajo sigan las prácticas recomendadas y las recomendaciones de GKE en cuanto a escalado, seguridad, actualizaciones y configuración de nodos. También puedes ejecutar cargas de trabajo específicas en el modo Autopilot en clústeres estándar de GKE. Esta opción te permite usar Autopilot en entornos en los que sigues necesitando controlar manualmente tu infraestructura. Para obtener más información, consulta Acerca de las cargas de trabajo en modo Autopilot en GKE Standard.
Ventajas
- Céntrate en tus aplicaciones: Google gestiona la infraestructura para que puedas centrarte en crear y desplegar tus aplicaciones.
- Seguridad: los clústeres de Autopilot tienen una configuración reforzada predeterminada, con muchos ajustes de seguridad habilitados de forma predeterminada. GKE aplica automáticamente parches de seguridad a tus nodos cuando están disponibles, de acuerdo con las programaciones de mantenimiento que hayas configurado.
- Precios: el modelo de precios de Autopilot simplifica las previsiones de facturación y la atribución.
- Gestión de nodos: Google gestiona los nodos de trabajo, por lo que no tienes que crear nodos nuevos para adaptarlos a tus cargas de trabajo ni configurar actualizaciones y reparaciones automáticas.
- Escalado: cuando tus cargas de trabajo experimentan una carga alta y añades más pods para dar cabida al tráfico (por ejemplo, con el autoescalado horizontal de pods de Kubernetes), GKE aprovisiona automáticamente nuevos nodos para esos pods y amplía automáticamente los recursos de los nodos que ya tienes en función de las necesidades.
- Programación: Autopilot gestiona el empaquetado de contenedores de pods, por lo que no tienes que preocuparte de cuántos pods se ejecutan en cada nodo. Puedes controlar aún más la colocación de pods mediante mecanismos de Kubernetes, como la afinidad y la topología de dispersión de pods.
- Gestión de recursos: si despliegas cargas de trabajo sin definir valores de recursos, como CPU y memoria, Autopilot establece automáticamente valores predeterminados preconfigurados y modifica tus solicitudes de recursos a nivel de carga de trabajo.
- Redes: Autopilot habilita de forma predeterminada algunas funciones de seguridad de redes, como la de pasar todo el tráfico de red de los pods a través de las reglas de cortafuegos de tu nube privada virtual, aunque el tráfico vaya a otros pods del clúster.
- Gestión de versiones: todos los clústeres de Autopilot están registrados en un canal de lanzamiento de GKE para que tu plano de control y tus nodos ejecuten las últimas versiones cualificadas de ese canal.
- Flexibilidad gestionada: si tus cargas de trabajo tienen requisitos específicos de hardware o recursos, como GPUs, puedes definirlos en ComputeClasses. Cuando solicitas un ComputeClass en tu carga de trabajo, GKE usa tus requisitos para configurar los nodos de tus pods. No es necesario configurar manualmente el hardware de los nodos ni de las cargas de trabajo individuales.
- Menor complejidad operativa: Autopilot reduce la sobrecarga de administración de la plataforma, ya que elimina la necesidad de monitorizar continuamente los nodos, el escalado y las operaciones de programación.
Autopilot incluye un acuerdo de nivel de servicio que abarca tanto el plano de control como la capacidad de computación que usan tus pods.
Acerca de la plataforma de computación optimizada para contenedores Autopilot
En la versión 1.32.3-gke.1927002 de GKE y versiones posteriores, Autopilot incluye una plataforma de computación optimizada para contenedores especializada para tus cargas de trabajo. Esta plataforma funciona bien con la mayoría de las cargas de trabajo de uso general que no requieren hardware específico, como los servidores web y los trabajos por lotes de intensidad media.
La plataforma de computación optimizada para contenedores usa nodos de Autopilot de GKE que pueden cambiar de tamaño de forma dinámica mientras se ejecutan. Estos nodos están diseñados para aumentar la escala a partir de fracciones de una CPU con interrupciones mínimas. Este cambio de tamaño dinámico reduce significativamente el tiempo necesario para aprovisionar nueva capacidad a medida que se escalan tus cargas de trabajo. Para mejorar la velocidad del escalado y el cambio de tamaño, GKE también mantiene un grupo de capacidad de computación preaprovisionada que se puede asignar automáticamente a las cargas de trabajo en respuesta a un aumento de la demanda de recursos.
La plataforma de computación optimizada para contenedores ofrece las siguientes ventajas:
- La capacidad de computación se adapta a las cargas de trabajo: Autopilot ajusta de forma dinámica la capacidad de computación de la plataforma de computación optimizada para contenedores en función de factores como el número de pods y el consumo de recursos. Por lo tanto, la capacidad de computación del clúster se adapta a las necesidades de tus cargas de trabajo.
- Tiempos de escalado rápidos: durante los eventos de escalado vertical, GKE puede cambiar el tamaño de los nodos de forma dinámica para dar cabida a más pods o a un mayor consumo de recursos. Este aprovisionamiento dinámico de capacidad suele significar que los nuevos pods no tienen que esperar a que se inicien los nuevos nodos.
Puede usar la plataforma de computación optimizada para contenedores Autopilot de las siguientes formas:
- Clústeres de Autopilot: los pods que no seleccionan hardware específico usan esta plataforma de computación de forma predeterminada.
- Clústeres estándar: puedes colocar pods específicos en la plataforma de computación optimizada para contenedores seleccionando una de las ComputeClasses de Autopilot integradas.
Precios
Los precios de Autopilot se basan en diferentes modelos en función del tipo de hardware que usen tus pods, tal como se indica a continuación:
Pods Autopilot de uso general: los siguientes tipos de pods usan un modelo de facturación basado en pods y se clasifican como pods de uso general:
- Pods que se ejecutan en la plataforma de computación optimizada para contenedores en clústeres Autopilot o Standard.
- Pods que seleccionan las ComputeClasses integradas
Balanced
oScale-Out
en clústeres de Autopilot.
Para obtener más información, consulta la sección "Cargas de trabajo de Autopilot de uso general" de los precios de Google Kubernetes Engine.
Cargas de trabajo de Autopilot que seleccionan hardware específico: los pods que seleccionan hardware específico, como series de máquinas de Compute Engine o aceleradores por hardware, usan un modelo de facturación basado en nodos. En este modelo, pagas por el hardware subyacente y una prima de gestión de nodos.
Para obtener más información, consulta la sección "Cargas de trabajo de Autopilot que seleccionan hardware específico" en los precios de Google Kubernetes Engine.
Clústeres y cargas de trabajo de Autopilot
GKE te permite usar el modo Autopilot en clústeres completos o en cargas de trabajo específicas de tus clústeres estándar. Los clústeres de Autopilot son la forma recomendada de usar GKE, ya que todo el clúster usa las prácticas recomendadas de Google de forma predeterminada.
Sin embargo, algunas organizaciones tienen requisitos de control manual o de flexibilidad que requieren el uso de un clúster estándar de GKE. En estos casos, puedes seguir usando Autopilot para cargas de trabajo específicas en tus clústeres estándar, lo que te permite beneficiarte de muchas funciones de Autopilot a nivel de carga de trabajo.
En las siguientes secciones se explica cómo planificar y crear clústeres de Autopilot. Si tienes un clúster estándar y quieres ejecutar algunas de tus cargas de trabajo en el modo Autopilot, consulta Información sobre las cargas de trabajo del modo Autopilot en GKE Standard.
Planificar los clústeres de Autopilot
Antes de crear un clúster, planifica y diseña tu Google Cloud arquitectura. En Autopilot, solicitas hardware en las especificaciones de tu carga de trabajo. GKE aprovisiona y gestiona la infraestructura correspondiente para ejecutar esas cargas de trabajo. Por ejemplo, si ejecutas cargas de trabajo de aprendizaje automático, solicita aceleradores por hardware. Si desarrollas aplicaciones Android, solicita CPUs Arm.
Planifica y solicita cuota para tu proyecto u organización de Google Cloud en función de la escala de tus cargas de trabajo. GKE solo puede aprovisionar infraestructura para tus cargas de trabajo si tu proyecto tiene suficiente cuota para ese hardware.
Ten en cuenta los siguientes factores durante la planificación:
- Tamaño y escala estimados del clúster
- Tipo de carga de trabajo
- Diseño y uso de clústeres
- Diseño y configuración de la red
- Configuración de seguridad
- Gestión y mantenimiento de clústeres
- Despliegue y gestión de cargas de trabajo
- Almacenamiento de registros y monitorización
En las siguientes secciones se proporciona información y recursos útiles para tener en cuenta estos aspectos.
Redes
Cuando creas un clúster de Autopilot con redes públicas, las cargas de trabajo del clúster pueden comunicarse entre sí y con Internet. Este es el modo de red predeterminado. Google Cloud y Kubernetes ofrecen varias funciones y prestaciones de red adicionales que puedes usar en función de tus requisitos, como los clústeres con redes privadas.
La creación de redes en Kubernetes y en la nube es compleja. Antes de empezar a cambiar los valores predeterminados queGoogle Cloud establece, asegúrate de que conoces los conceptos básicos de las redes. En la siguiente tabla se incluyen recursos para obtener más información sobre las redes en GKE en función de tu caso práctico:
Caso práctico | Recursos |
---|---|
Descubre cómo funcionan las redes en Kubernetes y GKE |
Una vez que conozcas el modelo de red, ten en cuenta los requisitos de red y de seguridad de red de tu organización. Elige GKE y Google Cloud funciones de red que cumplan esos criterios. |
Planificar la configuración de red de GKE | Te recomendamos que conozcas las cuotas de redes de GKE, como los endpoints por servicio y los límites de solicitudes a la API. Los siguientes recursos te ayudarán a planificar aspectos específicos de tu configuración de red:
|
Exponer tus cargas de trabajo |
|
Ejecutar servicios conectados de alta disponibilidad en varios clústeres | Usa servicios de varios clústeres (MCS). |
Balancear la carga del tráfico entrante |
|
Configurar la seguridad de la red del clúster |
|
Observar el tráfico de red de Kubernetes | De forma predeterminada, Autopilot usa GKE Dataplane V2 para las métricas y la observabilidad .
|
Escalado
Para gestionar una plataforma de forma eficaz a gran escala, es necesario planificar y reflexionar con detenimiento. Debes tener en cuenta la escalabilidad de tu diseño, es decir, la capacidad de tus clústeres para crecer sin dejar de cumplir los objetivos de nivel de servicio (SLOs). Para obtener instrucciones detalladas dirigidas tanto a administradores de plataformas como a desarrolladores, consulta las directrices para crear clústeres escalables.
También debes tener en cuenta las cuotas y los límites de GKE, sobre todo si tienes previsto ejecutar clústeres grandes con potencialmente miles de pods.
En Autopilot, GKE escala automáticamente tus nodos en función del número de pods de tu clúster. Si un clúster no tiene cargas de trabajo en ejecución, Autopilot puede reducir automáticamente el clúster a cero nodos. Tras la reducción del clúster, no quedan nodos en el clúster y, por lo tanto, los pods del sistema no se pueden programar. Es completamente normal. En la mayoría de los clústeres de Autopilot recién creados, puede que observes que las primeras cargas de trabajo que implementes tardan más tiempo en programarse. Esto se debe a que el nuevo clúster de Autopilot empieza con cero nodos utilizables al crearse y espera hasta que despliegues una carga de trabajo para aprovisionar nodos adicionales.
Para escalar automáticamente el número de pods de tu clúster, usa un mecanismo como el autoescalado horizontal de pods de Kubernetes, que puede escalar pods en función de las métricas de CPU y memoria integradas, o en función de las métricas personalizadas de Cloud Monitoring. Para saber cómo configurar el escalado en función de varias métricas, consulta el artículo Optimizar el autoescalado de pods en función de las métricas.
Seguridad
Los clústeres Autopilot habilitan y aplican de forma predeterminada las prácticas recomendadas y los ajustes de seguridad, incluidas muchas de las recomendaciones de Refuerza la seguridad de tu clúster y de la descripción general de la seguridad de GKE.
Si quieres obtener más información sobre las medidas de protección de Autopilot y cómo implementar tus requisitos de seguridad específicos, consulta el artículo Medidas de seguridad en Autopilot.
Crear un clúster
Después de planificar tu entorno y conocer tus requisitos, crea un clúster de Autopilot. Los nuevos clústeres de Autopilot son clústeres regionales que tienen una dirección IP accesible públicamente. Cada clúster tiene medidas de protección básicas aplicadas, así como escalado automático y otras funciones. Para ver una lista completa de las funciones preconfiguradas, consulta Comparar Autopilot de GKE y Standard.
Si quieres crear el clúster sin acceso a direcciones IP externas, configura el aislamiento de la red.
Desplegar cargas de trabajo en el modo Autopilot
Puedes ejecutar cargas de trabajo de Kubernetes compatibles en el modo Autopilot para que GKE gestione el escalado, la programación eficiente y la infraestructura subyacente. Puedes usar la plataforma de computación optimizada para contenedores en tus cargas de trabajo de uso general o seleccionar hardware específico para tus cargas de trabajo mediante un ComputeClass.
Puedes ejecutar estas cargas de trabajo de Autopilot de una de las siguientes formas:
- Despliega las cargas de trabajo en un clúster de Autopilot.
- Selecciona un ComputeClass de Autopilot cuando despliegues las cargas de trabajo en un clúster estándar.
Para ver una guía interactiva en la Google Cloud consola sobre cómo desplegar y exponer una aplicación en un clúster de Autopilot, haz clic en Guiarme:
En la siguiente tabla se muestran algunos requisitos habituales y se ofrecen recomendaciones sobre lo que debes hacer:
Caso práctico | Recursos |
---|---|
Controlar las propiedades de nodos concretos al escalar un clúster | Crea un ComputeClass personalizado y solicítalo en el manifiesto de tu carga de trabajo. Para obtener más información, consulta el artículo Acerca de las ComputeClasses personalizadas. |
Ejecutar cargas de trabajo de Autopilot en un clúster estándar | Usar un ComputeClass de Autopilot en el clúster Standard. Para obtener más información, consulta Acerca de las cargas de trabajo del modo Autopilot en GKE Standard. |
Ejecutar cargas de trabajo de Arm | Solicita una serie de máquinas que tenga CPUs Arm en una ComputeClass o en el manifiesto de tu carga de trabajo. Para obtener más información, consulta el artículo Acerca de las ComputeClasses personalizadas. |
Ejecutar cargas de trabajo de IA y aprendizaje automático aceleradas | Solicita GPUs en un ComputeClass o en el manifiesto de tu carga de trabajo. Para obtener más información sobre cómo solicitar GPUs en el manifiesto de tu carga de trabajo, consulta Desplegar cargas de trabajo de GPUs en Autopilot. |
Ejecuta cargas de trabajo tolerantes a fallos, como tareas por lotes, a un coste inferior. |
Puedes usar cualquier ComputeClass o configuración de hardware con pods de Spot. |
Ejecuta cargas de trabajo que requieran interrupciones mínimas, como servidores de juegos o colas de trabajo. | En los clústeres de Autopilot, especifica la anotación cluster-autoscaler.kubernetes.io/safe-to-evict=false
en la especificación del pod. Los pods están protegidos frente a la expulsión
causada por las actualizaciones automáticas de nodos o los eventos de reducción de escala durante un máximo de siete días.
Para obtener más información, consulta Ampliar el tiempo de ejecución de los pods de Autopilot. |
Permite que las cargas de trabajo superen sus solicitudes si hay recursos disponibles y sin usar en la suma de las solicitudes de recursos de los pods del nodo. | Define un valor de limits de recursos superior al de requests
o no definas límites de recursos.
Para obtener más información, consulta Configurar el bursting de pods en GKE. |
Autopilot te permite solicitar recursos de CPU, memoria y almacenamiento efímero para tus cargas de trabajo. Los intervalos permitidos dependen de si quieres ejecutar tus pods en la plataforma de computación optimizada para contenedores Autopilot o en hardware específico. Para obtener información sobre las solicitudes de recursos de contenedor predeterminadas y los intervalos de recursos permitidos, consulta Solicitudes de recursos en Autopilot.
Separación de cargas de trabajo
Los clústeres Autopilot admiten el uso de selectores de nodos y afinidad de nodos para configurar la separación de cargas de trabajo. La separación de cargas de trabajo es útil cuando necesitas indicar a GKE que coloque cargas de trabajo en nodos que cumplan criterios específicos, como etiquetas de nodo personalizadas. Por ejemplo, puedes indicar a GKE que programe pods de servidores de juegos en nodos con la etiqueta game-server
y que no programe ningún otro pod en esos nodos.
Para obtener más información, consulta Configurar la separación de cargas de trabajo en GKE.
Programar pods en zonas específicas mediante la topología zonal
Si necesitas colocar pods en una Google Cloud zona específica, por ejemplo, para acceder a información de un disco persistente de Compute Engine de una zona, consulta Colocar pods de GKE en zonas específicas.
Afinidad y antiafinidad de pods
Usa la afinidad y la antiafinidad de pods para colocar pods en un solo nodo o para que algunos pods eviten otros. La afinidad y la antiafinidad de pods indican a Kubernetes que tome una decisión de programación en función de las etiquetas de los pods que se ejecutan en los nodos de un dominio de topología específico, como una región o una zona concretas. Por ejemplo, puedes indicar a GKE que no programe pods de frontend junto con otros pods de frontend en los mismos nodos para mejorar la disponibilidad en caso de interrupción.
Para obtener instrucciones y más detalles, consulta Afinidad y antiafinidad de pods.
En GKE, puedes usar la afinidad y la antiafinidad de pods con las siguientes etiquetas en topologyKey
:
topology.kubernetes.io/zone
kubernetes.io/hostname
Restricciones de distribución de topología de pod
Para mejorar la disponibilidad de tus cargas de trabajo a medida que Kubernetes aumenta y reduce el número de pods, puedes definir restricciones de distribución de topología de pods. Este campo controla cómo distribuye Kubernetes tus pods entre los nodos de un dominio de topología, como una región. Por ejemplo, puedes indicar a Kubernetes que coloque un número específico de pods de sesión de servidor de juegos en cada una de las tres Google Cloud zonas de la región us-central1
.
Para ver ejemplos, más detalles e instrucciones, consulta Restricciones de distribución de topología de pods.
Gestionar y monitorizar clústeres de Autopilot
En Autopilot, GKE gestiona automáticamente las actualizaciones y el mantenimiento de los clústeres tanto del plano de control como de los nodos de trabajador. Los clústeres de Autopilot también tienen funciones integradas para que puedas monitorizar tus clústeres y cargas de trabajo.
Actualizaciones de versiones de GKE
Todos los clústeres Autopilot están registrados en un canal de lanzamiento de GKE. En los canales de versiones, GKE gestiona la versión de Kubernetes del clúster, equilibrando la disponibilidad de las funciones y la estabilidad de la versión en función del canal. De forma predeterminada, los clústeres Autopilot se registran en el canal de lanzamiento Regular, pero puedes seleccionar otro canal que se ajuste a tus necesidades de estabilidad y funcionalidad. Para obtener más información sobre los canales de lanzamiento, consulta el artículo Acerca de los canales de lanzamiento.
GKE inicia las actualizaciones automáticamente, monitoriza el progreso y pausa la operación si se producen problemas. Puedes controlar manualmente el proceso de actualización de las siguientes formas:
- Para controlar cuándo puede realizar GKE las actualizaciones automáticas, crea ventanas de mantenimiento. Por ejemplo, puedes definir la ventana de mantenimiento para la noche anterior al reinicio semanal de tu juego multijugador, de forma que los jugadores puedan iniciar sesión en el momento del reinicio sin interrupciones.
- Para controlar cuándo no puede iniciar GKE las actualizaciones automáticas durante un periodo específico, usa las exclusiones de mantenimiento. Por ejemplo, puede definir una exclusión por mantenimiento durante el evento de rebajas del Black Friday y el Cyber Monday para que sus clientes puedan comprar sin problemas.
- Para obtener una nueva versión antes de que comiencen las actualizaciones automáticas, actualiza el plano de control manualmente. GKE reconcilia la versión del nodo con la versión del plano de control con el tiempo.
- Para obtener una versión de parche que solo esté disponible en un canal de lanzamiento más reciente, consulta Ejecutar versiones de parche de un canal más reciente. Por ejemplo, es posible que necesites una versión de parche específica para mitigar una vulnerabilidad reciente.
Monitorizar clústeres de Autopilot
Los clústeres Autopilot ya tienen habilitados Cloud Logging, Cloud Monitoring y Google Cloud Managed Service para Prometheus.
Los clústeres Autopilot recogen automáticamente los siguientes tipos de registros y métricas, de acuerdo con las prácticas recomendadas de Google para la recogida de telemetría:
Registros de Cloud Logging
- Registros del sistema
- Registros de cargas de trabajo
- Registros de auditoría de la actividad administrativa
- Registros de auditoría de acceso a los datos
Métricas de Cloud Monitoring
- Métricas del sistema
- Métricas de carga de trabajo (de Google Cloud Managed Service para Prometheus)
No es necesario realizar ninguna configuración adicional para habilitar el registro y la monitorización. En la siguiente tabla se muestra cómo interactuar con la telemetría recogida en función de tus requisitos:
Caso práctico | Recursos |
---|---|
Interpretar y acceder a los registros de GKE |
|
Observar el rendimiento de los clústeres de GKE | Monitorizar de forma eficaz el rendimiento de tu clúster puede ayudarte a optimizar los costes operativos de tus clústeres y cargas de trabajo.
|
Monitorizar la postura de seguridad de tus clústeres | Usa el panel de control de postura de seguridad para auditar tus cargas de trabajo en ejecución en comparación con las prácticas recomendadas de GKE, buscar vulnerabilidades en tus sistemas operativos de contenedores y paquetes de idiomas, y obtener recomendaciones de mitigación útiles. Para obtener más información, consulta el artículo Acerca del panel de control de postura de seguridad. |
Solución de problemas
Para ver los pasos para solucionar problemas, consulta el artículo Solucionar problemas de clústeres de Autopilot.