Saltar al contenido
TURNKEYGNU / LINUX
AplicacionesDocumentaciónBlogCapturas de pantallaGitHubTurnKey Hub
文Español
EnglishEspañol中文日本語PortuguêsDeutsch
Home/Preguntas frecuentes

Documentación

Preguntas frecuentes

¿Qué es un trabajo de trabajo?

Una tarea es una secuencia de empleos. Cada trabajo es esencialmente un comando de shell que crea Cloudtask al pasar el comando de tarea a los argumentos de entrada de trabajo. Por ejemplo, considere las siguientes nubes:

seq 3 | cloudtask echo

seq 3 imprime una secuencia de números de 1 a 3, cada uno en una línea separada que Cloudtask apéndice a la eco comando para crear tres comandos:

echo 1
echo 2
echo 3

Cada comando de trabajo debe ser independiente, lo que significa que no debe confiar en que cualquier otro comando de trabajo que se ejecute antes o después de él en un trabajador en particular. La orden de ejecución y distribución de los comandos de trabajo está hasta nubes. Si una tarea se divide entre múltiples trabajadores (por ejemplo, --split=3), es probable que cada comando de trabajo se ejecute en un servidor diferente.

Los comandos de trabajo pueden no requerir ninguna interacción del usuario. Cloudtask no puede interactuar con los comandos de trabajo para que cualquier intento de interacción con el usuario (por ejemplo, un diálogo de confirmación) cuelgue el trabajo hasta que el trabajo configurado --timeout se eleve (1 hora por defecto).

¿Cómo puedo preparar a un trabajador para un trabajo?

En una instalación de TurnKey Core fresca, instale y pruebe todo el software (por ejemplo, paquetes, scripts personalizados, etc.) en el que depende su comando de trabajo. Este es su maestro trabajador.

Respaldo del maestro usando TKLBAM, y pasar su identificación de respaldo a cloudtask para que pueda restaurar esta copia de seguridad en cualquier trabajador que se lanza automáticamente.

Puede sustituir o complementar una restauración TKLBAM con el comando --pre (por ejemplo, para instalar un paquete) y/o aplicar un --overlay al sistema de archivos del trabajador.

¿Cómo puedo proporcionar comandos de trabajo con datos de entrada necesarios?

Las cantidades pequeñas de datos de entrada pueden almacenarse en la copia de seguridad TKLBAM o transferirse al trabajador en el sobrelevado.

Para cantidades más sustanciales de datos de entrada, se recomienda extraer datos sobre la red (por ejemplo, desde un servidor de archivos o Amazon S3).

¿Dónde almacena los productos finales útiles de un comando de trabajo?

Los trabajos deben reducir los productos finales útiles, como archivos a un recurso de almacenamiento externo en la red.

Cualquier espacio de almacenamiento en disco duro en el trabajador debe considerarse temporal ya que cualquier trabajador lanzado automáticamente será destruido al final de la tarea junto con el contenido de la su espacio de almacenamiento temporal.

Por ejemplo, si un trabajo crea archivos en el sistema de archivos local, los perderían cuando el trabajador es destruido a menos que el primero se suba a través de la red a un servidor de archivos, o a Amazon S3, etc.

Cualquier salida de consola (por ejemplo, declaraciones de impresión) de un trabajo se registra automáticamente por Cloudtask.

¿Qué pasa si un trabajo falla?

Se considera que un trabajo ha fracasado si el comando de empleo devuelve un código de salida no cero. Se registran simplemente y el número total de fracasos laborales reportados al final de la sesión. El trabajador continúa ejecutando el próximo trabajo.

¿Se dividen los empleos por igual entre los trabajadores?

Los trabajadores obtienen órdenes de empleo de una cola de trabajo en una primera vez servidos. Un trabajador tomará el siguiente trabajo de la cola tan pronto como termine con el trabajo anterior. Un trabajador rápido o un trabajador que haya recibido trabajos más cortos puede ejecutar más empleos que un trabajador lento o un trabajador que ha recibido más empleos.

¿Cómo se autentifica la nubetask a los trabajadores?

Cloudtask entra en servidores remotos sobre SSH. Supone que puede hacerlo sin una contraseña usando la autenticación de clave SSH (por ejemplo, su llave SSH se ha añadido a las claves autorizadas del trabajador). No se admite la autenticación de contraseñas.

En la sección Perfil de Usuarios el Hub le permite configurar una o más teclas públicas SSH que se añadirán a las claves autorizadas de cualquier servidor de nube lanzado.

¿Entonces necesito poner mi llave privada SSH en cualquier servidor remoto en el que ejecuto Cloudtask?

Otra alternativa más segura sería usar el reenvío de agente SSH para conectarse al servidor remoto:

ssh -A remote-server

Forwarding the local SSH agent will let remote-server authentiate with your SSH keys without them ever leaving the security of your personal computer.

¿Y si un trabajador falla?

Cloudtask no depende de la fiabilidad de un trabajador único. Si un trabajador falla mientras se está ejecutando un trabajo, el trabajo será redirigido a uno de los trabajadores restantes.

Se considera que un trabajador ha fracasado cuando Cloudtask detecta que ya no es capaz de ejecutar comandos sobre SSH (es decir, los trabajadores de cloudtask pings periódicamente).

No importa si esto es debido a un problema de enrutamiento de la red que hace que el trabajador sea inalcable, un problema de software (por ejemplo, pánico del núcleo) o un problema de rendimiento crítico tal como el trabajador que se queda sin memoria y se tropieza tan mal en el intercambio que ni siquiera puede aceptar comandos sobre SSH.

Como siempre Cloudtask se hace responsable de la destrucción de los trabajadores que lanza. Un trabajador que ha fracasado será destruido inmediatamente.

¿Tengo que usar el Hub para lanzar trabajadores?

No es sólo la forma más fácil de hacerlo. Cloudtask puede aceptar una lista arbitraria de direcciones IP de trabajadores a través de la opción --workers.

¿Puedo mezclar trabajadores pre-lanzados con trabajadores lanzados automáticamente?

Sí. Si el --split es mayor que el número de trabajadores pre-lanzados que proporciona a través de la opción --workers, Cloudtask lanzará trabajadores adicionales para satisfacer los configurados - ¡Sepárense!

Por ejemplo, si proporciona una lista de 5 direcciones IP de trabajadores pre-lanzados y especifica una división de tareas de 15 entonces Cloudtask lanzará un 10 trabajadores adicionales automáticamente.

¿Cuándo se destruyen automáticamente los trabajadores?

Para minimizar las tarifas de uso del servidor de nube, Cloudtask destruye a los trabajadores que lanza tan pronto como se agota el trabajo para que lo hagan.

Pero Cloudtask sólo se hace responsable de la destrucción de los trabajadores que lanza automáticamente. También puede lanzar trabajadores a mano utilizando el comando cloudtask-launch-workers y pasarlos a cloudtask utilizando la opción --workers. En ese caso usted es responsable de la destrucción de los trabajadores (por ejemplo, usando el comando de los trabajadores de la destructora de nubes).

¿Cómo aborto una tarea?

Usted puede abortar una tarea de forma segura en cualquier momento por cualquiera:

  1. Presionando CTRL-C en la consola en la que se ejecuta cloudtask.
  2. Usar matar para enviar la señal TERM a la sesión de nubes.

¿Qué pasa cuando aborto una tarea?

La ejecución de todos los trabajos actualmente en ejecución es inmediatamente abortada. Cualquier instancia de trabajo que fue lanzada automáticamente por cloudtask es destruida lo antes posible.

Para que se pueda reanudar más adelante una sesión abortada, el estado actual de la tarea se guarda en la sesión de tareas. El estado describe qué empleos han terminado de ejecutar y qué empleos todavía están en el estado pendiente.

Cuando se reanude la tarea, se ejecutarán los trabajos abortados junto con los demás puestos de trabajo pendientes.

Abortar una tarea no es inmediata porque puede tomar cualquier lugar de unos segundos a unos minutos para cerrar con seguridad una tarea. Por ejemplo, las instancias EC2 en el estado pendiente no pueden ser destruidas así que Cloudtask tiene que esperar a que lleguen primero al estado en ejecución.

TURNKEYGNU / LINUX

Controla tu infraestructura sin empezar desde cero.

Explorar TurnKey
Acerca deDocumentaciónPreguntas frecuentesBlogGitHub
Libre y de código abiertoSeguro de forma predeterminadaListo para desplegar