Ir para o conteúdo
TURNKEYGNU / LINUX
AplicativosDocumentaçãoBlogCapturas de telaGitHubTurnKey Hub
文Português
EnglishEspañol中文日本語PortuguêsDeutsch
Principal/Perguntas mais frequentes

Documentação

Perguntas mais frequentes

O que é um trabalho de trabalho?

Uma tarefa é uma sequência de tarefas. Cada tarefa é essencialmente apenas um comando de shell que a tarefa na nuvem cria, adicionando o comando de tarefa aos argumentos de entrada da tarefa. Por exemplo, considere a seguinte tarefa na nuvem:

seq 3 | cloudtask echo

Segs. 3 imprime uma sequência de números de 1 a 3, cada um numa linha separada que a tarefa na nuvem adiciona à eco comando para criar três comandos:

echo 1
echo 2
echo 3

Cada comando de trabalho deve ser independente, o que significa que não deve depender de qualquer outro comando de trabalho ser executado antes ou depois dele em um determinado trabalhador. A ordem de execução e distribuição dos comandos de trabalho está em cima de nuvem. Se uma tarefa é dividida entre vários trabalhadores (por exemplo, --split=3) cada comando de trabalho é provavelmente executado em um servidor diferente.

Os comandos de trabalho podem não exigir qualquer interação do usuário. A tarefa na nuvem não pode interagir com comandos de trabalho, então qualquer tentativa de interação com o usuário (por exemplo, uma janela de confirmação) irá pendurar o trabalho até que o trabalho configurado --timeout desvaneça (1 hora) por padrão).

Como preparo um trabalhador para um trabalho?

Numa instalação de implementação nova do TurnKey Core e teste todo o software (por exemplo, pacotes, scripts personalizados, etc.) de que o seu comando de trabalho depende. Este é o seu mestre de trabalho.

Faça backup do mestre usando TKLBAM, e passar o seu ID de backup para nuvemtask para que ele possa restaurar este backup em qualquer trabalhador que ele lança automaticamente.

Você pode substituir ou complementar uma restauração TKLBAM com o comando --pre (por exemplo, para instalar um pacote) e/ou aplicar um --overlay no sistema de arquivos do trabalhador.

Como posso fornecer comandos de trabalho com dados de entrada necessários?

Pequenas quantidades de dados de entrada podem ser armazenadas no backup TKLBAM ou transferidas para o trabalhador na sobreposição.

Para quantidades mais substanciais de dados de entrada, recomenda-se que os dados sejam puxados através da rede (por exemplo, de um servidor de arquivos ou Amazon S3).

Onde é que guardo os produtos finais úteis de um comando de trabalho?

Jobs deve remover os produtos finais úteis, como arquivos para um recurso de armazenamento externo na rede.

Qualquer espaço de armazenamento em disco rígido no trabalhador deve ser considerado temporário, pois qualquer trabalhador lançado automaticamente será destruído no final da tarefa, juntamente com o conteúdo da O seu espaço de armazenamento temporário.

Por exemplo, se uma tarefa cria arquivos no sistema de arquivos local, que seriam perdidos quando o trabalhador é destruído, a menos que sejam enviados pela primeira vez pela rede para um servidor de arquivos, ou para Amazon S3, etc.

Qualquer saída do console (por exemplo, instruções de impressão) de um trabalho é automaticamente registrada pela Cloudtask.

O que acontece se um trabalho falhar?

Considera- se que uma tarefa falhou se o comando do trabalho devolver um código de saída não- zero. As tarefas mal- sucedidas não são re- tentadas. Eles são simplesmente registrados e o número total de falhas de trabalho relatadas no final da sessão. O trabalhador então continua executando o próximo trabalho.

Os empregos dividem-se igualmente entre os trabalhadores?

Não necessariamente. Trabalhadores puxar comandos de trabalho de uma fila de trabalhos em uma primeira vir primeiro servido base. Um trabalhador irá obter o próximo trabalho da fila assim que terminar com o trabalho anterior. Um trabalhador rápido ou um trabalhador que tenha recebido trabalhos mais curtos pode executar mais trabalhos do que um trabalhador lento ou um trabalhador que tenha recebido trabalhos mais longos.

Como a tarefa da nuvem autentica-se aos trabalhadores?

A tarefa em nuvem entra em servidores remotos sobre o SSH. Ele assume que pode fazer isso sem uma senha usando a autenticação de chave SSH (por exemplo, sua chave SSH foi adicionada às chaves autorizadas do trabalhador). A autenticação da senha não é suportada.

Na seção Perfil de usuário, o Hub permite configurar uma ou mais chaves públicas SSH que serão adicionadas às chaves autorizadas de qualquer servidor de nuvem lançado.

Então eu preciso colocar minha chave SSH privada em qualquer servidor remoto que eu execute a tarefa na nuvem?

Outra alternativa mais segura seria usar o encaminhamento de agente SSH para se conectar ao servidor remoto:

ssh -A remote-server

Encaminhar o agente SSH local permitirá que o servidor remoto autentique com suas chaves SSH sem que eles nunca deixem a segurança de seu computador pessoal.

E se um trabalhador falhar?

A tarefa na nuvem não depende da confiabilidade de nenhum trabalhador. Se um trabalhador falhar enquanto estiver executando um trabalho, o trabalho será redirecionado para um dos trabalhadores restantes.

Um trabalhador é considerado como tendo falhado quando a tarefa na nuvem detecta que ele não é mais capaz de executar comandos sobre SSH (ou seja, trabalhadores de pings de tarefas na nuvem periodicamente).

Não importa se isso é por causa de um problema de roteamento de rede que torna o trabalhador inacessível, um problema de software (por exemplo, o pânico do kernel) ou um problema de desempenho crítico como como o trabalhador ficando sem memória e batendo tão mal em swap que ele não pode sequer aceitar comandos sobre SSH.

Como de costume, a Cloudtask assume a responsabilidade pela destruição dos trabalhadores que lança. Um trabalhador que falhou será destruído imediatamente.

Tenho de usar o Hub para lançar trabalhadores?

Não, essa é a maneira mais fácil de fazer isso. Cloudtask pode aceitar uma lista arbitrária de endereços IP de trabalhadores através da opção --workers.

Posso misturar os trabalhadores pré-lançados com trabalhadores lançados automaticamente?

Sim. Se o --split for maior do que o número de trabalhadores pré-lançados que você fornece através da opção --workers, a Cloudtask lançará trabalhadores adicionais para satisfazer o configurado - Separem-se.

Por exemplo, se você fornecer uma lista de 5 endereços IP de trabalhador pré-lançados e especificar uma divisão de tarefa de 15, então a Cloudtask lançará automaticamente 10 trabalhadores adicionais.

Quando os trabalhadores são automaticamente destruídos?

Para minimizar as taxas de uso do servidor na nuvem, a Cloudtask destrói os trabalhadores que lança assim que fica sem trabalho para eles.

Mas a Cloudtask só assume a responsabilidade pela destruição dos trabalhadores que lança automaticamente. Você também pode lançar trabalhadores manualmente usando o comando cloudtask-launch-workers e passá-los para cloudtask usando a opção --workers. Nesse caso, você é responsável pela destruição do trabalhador (por exemplo, usando o comando cloudtask-destruction-workers).

Como aborto uma tarefa?

Você pode interromper uma tarefa com segurança a qualquer momento por:

  1. Pressionando CTRL-C na consola em que a tarefa de nuvem está a ser executada.
  2. Use kill para enviar o sinal TERM para pid de sessão de tarefas na nuvem.

O que acontece quando aborto uma tarefa?

A execução de todas as tarefas em execução é imediatamente interrompida. Qualquer instância de trabalho que tenha sido lançada automaticamente pela tarefa na nuvem é destruída o mais rapidamente possível.

Para permitir que uma sessão interrompida seja retomada mais tarde, o estado atual da tarefa é salvo na sessão de tarefa. O estado descreve quais os trabalhos que terminaram de executar e quais os trabalhos que ainda estão no estado pendente.

Quando a tarefa for retomada, quaisquer tarefas abortadas serão re-executadas juntamente com os outros trabalhos pendentes.

Abortar uma tarefa não é imediato, pois pode levar de alguns segundos a alguns minutos para desligar uma tarefa com segurança. Por exemplo, as instâncias EC2 no estado pendente não podem ser destruídas, então a tarefa na nuvem tem que esperar que elas cheguem ao estado em execução primeiro.

TURNKEYGNU / LINUX

Controle sua infraestrutura sem começar do zero.

Explorar o TurnKey
SobreDocumentaçãoPerguntas frequentesBlogGitHub
Livre e de código abertoSeguro por padrãoPronto para implantar