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 E/S de forma correcta y desactivar el almacenamiento, son especialmente vulnerables a las interrupciones. Puedes usar funciones de Kubernetes, como los presupuestos de interrupción de Pods (PDB) y los sondeos de preparación para que las aplicaciones sigan estando disponibles durante las actualizaciones.
GKE supervisa tus clústeres y usa el servicio de recomendación para entregar orientación sobre cómo puedes optimizar el uso de la plataforma. GKE detecta oportunidades para preparar las cargas de trabajo para interrupciones y proporciona orientación sobre cómo actualizar los PDB o los sondeos de preparación a fin de maximizar la resiliencia de las cargas de trabajo ante una interrupción. Por ejemplo, si un StatefulSet no está protegido por un PDB, tu clúster puede quitar todos los Pods a la vez durante una actualización de nodo. A fin de evitar esto, GKE entrega orientación para crear un PDB a fin de que la mayoría de los Pods puedan permanecer en ejecución durante una actualización.
Para ver las condiciones específicas en las que GKE entrega orientación relacionada con las interrupciones, consulta Cuándo GKE identifica cargas de trabajo con vulnerabilidad para la interrupción.
Para obtener más información sobre cómo administrar las estadísticas y las recomendaciones de recomendadores, consulta Optimiza el uso de GKE con estadísticas y recomendaciones.
Identifica las cargas de trabajo con vulnerabilidad a las interrupciones
GKE genera estadísticas que identifican las cargas de trabajo vulnerables a interrupciones en tu clúster. Para obtener estas estadísticas, sigue las instrucciones a fin de ver las estadísticas y recomendaciones con Google Cloud CLI o la API del recomendador. Usa los subtipos enumerados en la siguiente sección para filtrar estadísticas específicas. Estas estadísticas no están disponibles en la consola de Google Cloud.
Cuando GKE identifica cargas de trabajo con vulnerabilidad a las interrupciones
Consulta la siguiente tabla para ver las situaciones en las que GKE entrega una estadística y una recomendación, y el subtipo relevante:
Subtipo de estadística | Descripción | Acción |
---|---|---|
PDB_UNPROTECTED_STATEFULSET |
Alerta cuando hay un StatefulSet sin etiquetas de PDB existentes que coincidan con las etiquetas del selector de Pods de StatefulSet. Esto significa que todos los Pods del StatefulSet pueden quedar inhabilitados durante un evento, como una actualización de nodo. | Agrega un PDB cuyas etiquetas coincidan con las del campo del selector de Pods de StatefulSet. Especifica en ese PDB cuánto nivel de interrupción puede tolerar el StatefulSet. La recomendación asociada con esta estadística sugiere qué etiquetas debe establecer un PDB para cubrir el StatefulSet mencionado. |
PDB_UNPERMISSIVE |
Alerta cuando un PDB que coincide con un Pod no puede cumplir con alguna actividad de mantenimiento, como una actualización de nodo. Un PDB debe permitir que se interrumpa al menos un Pod, por lo que GKE infringe este PDB por el mantenimiento necesario después de una hora. | Ajusta la configuración minAvailable del PDB para que sea menor que el recuento total de Pods o la configuración de maxUnavailable en un valor mayor que cero. |
PDB_STATEFULSET_WITHOUT_PROBES |
Alerta cuando un StatefulSet se configura con un PDB, pero sin sondeos de preparación, por lo que el PDB no es tan eficaz para medir la preparación de la aplicación. Los PDB respetan los sondeos de preparación cuando observan qué Pods se pueden contar como en buen estado. Por lo tanto, si un Pod cubierto por un PDB no tiene configurado un sondeo de preparación, este tiene visibilidad limitada sobre si el Pod está en buen estado o si está en funcionamiento. | Agrega sondeos de preparación a los Pods en StatefulSets para el PDB mencionado en la estadística. También recomendamos que agregues sondeos de funcionamiento. |
Implementa la guía para mejorar la preparación para interrupciones
Si recibiste estadísticas y recomendaciones para las cargas de trabajo en tu clúster y deseas mejorar su preparación para interrupciones, implementa las instrucciones descritas en la recomendación y la acción para ese subtipo de estadística, como se muestra en el 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 implementen los cambios. Si transcurrieron menos de 24 horas desde que implementaste la guía de la recomendación, puedes marcarla como resuelta. Si no deseas implementar la recomendación, puedes descartarla.
¿Qué sigue?
- Si deseas obtener más información sobre cómo garantizar la confiabilidad y el tiempo de actividad de tu clúster de GKE, consulta las Prácticas recomendadas para operaciones del día 2 de GKE.
- Para obtener más información sobre las posibles interrupciones en los Pods de Kubernetes, consulta Interrupciones.