Sobes.tech
Middle

¿Para qué se utilizan las pruebas en Kubernetes?

sobes.tech AI

Respuesta de la IA

Las sondas en Kubernetes se utilizan para determinar el estado de los contenedores y gestionar el ciclo de vida de los pods. Permiten que el clúster responda automáticamente a cambios en el estado de las aplicaciones, asegurando su disponibilidad y estabilidad.

Existen tres tipos principales de sondas:

  • Sonda de vivacidad (Liveness probe): Determina si la aplicación dentro del contenedor está funcionando. Si la sonda de vivacidad termina con error, Kubernetes reinicia el contenedor.
  • Sonda de disponibilidad (Readiness probe): Determina si el contenedor está listo para recibir tráfico. Si la sonda de disponibilidad termina con error, Kubernetes excluye temporalmente el pod de la lista de puntos finales disponibles para el servicio que lo dirige.
  • Sonda de inicio (Startup probe): Determina si la aplicación en el contenedor ha terminado de iniciarse. Puede usarse para aplicaciones que requieren mucho tiempo para inicializarse. Si la sonda de inicio termina con éxito, las verificaciones posteriores (liveness/availability) comienzan según lo programado. Si la sonda de inicio falla durante el tiempo establecido, Kubernetes mata y reinicia el contenedor.

Las sondas pueden implementarse de varias maneras:

  • ExecAction: Ejecuta un comando dentro del contenedor. El éxito se determina por el código de retorno (0 - éxito, cualquier otro - error).
    # Ejemplo de ExecAction para la sonda de vivacidad
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5
    
  • HTTPGetAction: Envía una solicitud HTTP GET al puerto y ruta especificados del contenedor. El éxito se determina por el código de estado HTTP (generalmente 2xx o 3xx).
    # Ejemplo de HTTPGetAction para la sonda de disponibilidad
    readinessProbe:
      httpGet:
        path: /ready
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 5
      failureThreshold: 3
    
  • TCPSocketAction: Intenta establecer una conexión TCP en el puerto especificado del contenedor. El éxito se determina por la conexión exitosa.
    # Ejemplo de TCPSocketAction para la sonda de vivacidad
    livenessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 15
      periodSeconds: 20
    

El uso correcto de las sondas es crucial para la fiabilidad y resistencia a fallos de las aplicaciones en Kubernetes.