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.