Las aplicaciones que se ejecutan en clústeres de Google Kubernetes Engine (GKE) deben estar preparadas para interrupciones, como actualizaciones de nodos y otros eventos de mantenimiento. Las aplicaciones con estado, que a menudo necesitan tiempo para detener limpiamente las operaciones de E/S y desmontar el almacenamiento, son especialmente vulnerables a las interrupciones. Puedes usar funciones de Kubernetes, como presupuestos de interrupción de pods (PDBs) y sondas de disponibilidad, para mantener las aplicaciones disponibles durante las actualizaciones.
GKE monitoriza tus clústeres y usa el servicio Recommender para ofrecerte recomendaciones sobre cómo optimizar el uso de la plataforma. GKE detecta oportunidades para preparar tus cargas de trabajo ante interrupciones y te ofrece directrices sobre cómo actualizar tus PDBs o comprobaciones de disponibilidad para maximizar la resiliencia de tus cargas de trabajo ante interrupciones. Por ejemplo, si un StatefulSet no está protegido por un PDB, tu clúster podría eliminar todos los pods a la vez durante una actualización de nodo. Para evitarlo, GKE ofrece instrucciones para crear un PDB de forma que la mayoría de los pods puedan seguir ejecutándose durante una actualización.
Para ver las condiciones específicas en las que GKE ofrece orientación relacionada con las interrupciones, consulta Cuándo identifica GKE cargas de trabajo con vulnerabilidad a las interrupciones.
Para obtener más información sobre cómo gestionar las estadísticas y las recomendaciones de Recommenders, consulta el artículo Optimizar el uso de GKE con estadísticas y recomendaciones.
Identificar las cargas de trabajo que pueden sufrir interrupciones
GKE genera estadísticas que identifican las cargas de trabajo de tu clúster que son vulnerables a las interrupciones. Para obtener estas estadísticas, sigue las instrucciones para ver estadísticas y recomendaciones con la CLI de Google Cloud o la API Recommender. Usa los subtipos que se indican en la siguiente sección para filtrar las estadísticas específicas. Estas estadísticas no están disponibles en la consola de Play. Trusted Cloud
Cuando GKE identifica cargas de trabajo vulnerables a interrupciones
Consulta la siguiente tabla para ver los casos en los que GKE ofrece una estadística y una recomendación, así como el subtipo correspondiente:
Subtipo de estadística | Descripción | Acción |
---|---|---|
PDB_UNPROTECTED_STATEFULSET |
Alerta cuando existe un StatefulSet en el que ninguna etiqueta de PDB coincide con las etiquetas del selector de pods del StatefulSet. Esto significa que todos los pods del StatefulSet se pueden desactivar durante un evento, como una actualización de nodo. | Añade un PDB cuyas etiquetas coincidan con las del campo selector de Pod del StatefulSet. Especifica en ese PDB cuánta interrupción puede tolerar el StatefulSet. La recomendación asociada a esta estadística sugiere qué etiquetas debe definir un PDB para cubrir el StatefulSet mencionado. |
PDB_UNPERMISSIVE |
Alertas cuando no se puede cumplir un PDB que coincida con un pod en ninguna actividad de mantenimiento, como una actualización de nodos. Una PDB debe permitir que se interrumpa al menos un pod, por lo que GKE infringe esta PDB para realizar el mantenimiento necesario después de una hora. | Ajusta el valor de minAvailable del PDB para que sea inferior al número total de pods o el valor de maxUnavailable para que sea superior a cero. |
PDB_STATEFULSET_WITHOUT_PROBES |
Alertas cuando se configura un StatefulSet con un PDB, pero sin comprobaciones de disponibilidad, por lo que el PDB no es tan eficaz a la hora de evaluar la disponibilidad de la aplicación. Los PDBs respetan las sondas de disponibilidad cuando analizan qué pods se pueden considerar correctos. Por lo tanto, si un pod cubierto por un PDB no tiene configurada una sonda de preparación, el PDB tiene una visibilidad limitada sobre si el pod está en buen estado o si solo está activo. | Añade sondas de disponibilidad a los pods de los StatefulSets del PDB mencionado en la información valiosa. También te recomendamos que añadas sondas de actividad. |
DEPLOYMENT_MISSING_PDB |
Alertas cuando hay un Deployment con un selector de Pod que no coincide con un PDB y el Deployment tiene más de una réplica o el autoescalado horizontal de Pods habilitado. Esto significa que todos los pods del despliegue se pueden desactivar durante un evento, como una actualización de nodo. | Añade un PDB cuyas etiquetas coincidan con las etiquetas del campo de selector de pods del Deployment. Especifica en ese PDB cuántas interrupciones puede tolerar el Deployment. La recomendación asociada a esta información valiosa sugiere qué etiquetas debe definir un PDB para cubrir la implementación mencionada. |
Implementar las directrices para mejorar la preparación ante interrupciones
Si has recibido información valiosa y recomendaciones para las cargas de trabajo de tu clúster y quieres mejorar su preparación ante interrupciones, sigue las instrucciones que se describen en la recomendación y en la acción de ese subtipo de información valiosa, tal como se indica en la sección anterior.
Las recomendaciones se evalúan una vez al día, por lo que pueden tardar hasta 24 horas en resolverse después de que se hayan implementado los cambios.
Si no quieres implementar la recomendación, puedes rechazarla.
Siguientes pasos
- Para obtener más información sobre cómo garantizar la fiabilidad y el tiempo de actividad de tu clúster de GKE, consulta las prácticas recomendadas para las operaciones del segundo día de GKE.
- Para obtener más información sobre las posibles interrupciones de los pods en Kubernetes, consulta Interrupciones.