Estrategias de Despliegue de Kubernetes: Actualizaciones Sin Tiempo de Inactividad

Aprende sobre las estrategias de despliegue de Kubernetes, particularmente para lograr actualizaciones sin tiempo de inactividad.

Descripción general

Las estrategias de despliegue de Kubernetes son esenciales para gestionar actualizaciones de aplicaciones de manera que se mantenga la disponibilidad y el rendimiento de la aplicación. Elegir la estrategia de despliegue adecuada es crucial para garantizar cero tiempo de inactividad y mitigar los riesgos asociados con nuevos lanzamientos, lo que hace que este conocimiento sea valioso para mantener aplicaciones robustas en entornos de producción.

Cómo funciona

En Kubernetes, las estrategias de despliegue gestionan cómo se implementan las actualizaciones de las aplicaciones. Las dos estrategias más comúnmente utilizadas son Rolling Update y Recreate.

Rolling Update

Esta estrategia reemplaza gradualmente las instancias de la versión anterior de una aplicación por instancias de la nueva versión. Esto permite cero tiempo de inactividad, ya que una parte de los pods permanece operativa mientras se aplica la actualización.

Recreate

Esta estrategia termina todas las instancias de la versión actual antes de comenzar las instancias de la nueva versión, lo que puede resultar en tiempo de inactividad durante la transición.

Aquí hay una representación simple de las dos estrategias:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: example-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: example
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
      - name: example-container
        image: example-image:v1
  strategy:
    type: RollingUpdate # Cambiar a Recreate para usar la otra estrategia
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1

Tabla de Comparación de Estrategias

Estrategia Descripción Cero Tiempo de Inactividad Potencial de Tiempo de Inactividad
Rolling Update Reemplaza gradualmente las versiones antiguas por nuevas. No
Recreate Termina todas las versiones antiguas antes de añadir nuevas. No

En un Rolling Update, el parámetro maxUnavailable define cuántos pods pueden estar fuera de servicio durante la actualización, mientras que maxSurge dicta cuántos pods nuevos pueden crearse por encima del número deseado de pods. Esto te da un control detallado sobre el proceso de despliegue.

Errores Comunes

  • No configurar parámetros: No establecer maxUnavailable y maxSurge puede llevar a interrupciones en el servicio o a una utilización ineficiente de los recursos.
  • Elegir Recreate por defecto: Asumir que terminar las instancias antiguas antes de iniciar nuevas siempre es la opción segura puede resultar en tiempo de inactividad innecesario.
  • Descuidar las sondas de disponibilidad: No usar sondas de disponibilidad puede resultar en que el tráfico se envíe a pods que no están completamente listos, causando fallas o un rendimiento degradado durante las actualizaciones.
  • Ignorar las capacidades de reversión: Olvidar especificar cómo manejar los despliegues fallidos puede dificultar la recuperación de problemas.

Preguntas Frecuentes

P: ¿Qué estrategia usarías en Kubernetes para garantizar cero tiempo de inactividad durante las actualizaciones de aplicaciones?
R: Se debe usar la estrategia de Rolling Update para garantizar cero tiempo de inactividad durante las actualizaciones de aplicaciones.

P: ¿Cuál es la importancia de la estrategia 'Rolling Update' en Kubernetes?
R: La estrategia Rolling Update permite actualizaciones graduales que mantienen la disponibilidad de la aplicación al asegurar que algunos pods permanezcan operativos durante el proceso de despliegue.

P: ¿Cómo puedo revertir a una versión anterior en Kubernetes?
R: Puedes usar el comando kubectl rollout undo para volver a una versión anterior del despliegue.

P: ¿Dónde puedo encontrar más información sobre cómo configurar estrategias de despliegue?
R: La documentación de Kubernetes proporciona una guía detallada sobre estrategias de despliegue y sus configuraciones.

Referencias

Practica

¿Listo para practicar kubernetes-deployment-strategy?

Responde preguntas reales, recibe feedback al instante y sube tu puntaje de habilidad — gratis. La práctica es en inglés, como las entrevistas técnicas reales.

Prueba una 👇

ReactHooksIntermedio
0 XP
When does useEffect run by default?

↑ Go ahead — pick an answer. This is Skillpato.