Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você precisa do Jetpack em cada nó de um cluster. O Azure CycleCloud instala automaticamente o Jetpack em cada máquina virtual que você provisiona para se tornar um nó em um cluster. O Jetpack fornece três funções principais:
- Configuração do nó – o CycleCloud usa scripts e o Chef para automatizar a configuração de uma VM provisionada em um nó de cluster em funcionamento. Um cliente Chef e os recursos necessários para a configuração da VM são inseridos no Jetpack.
- Sincronização Distribuída – O Jetpack gerencia a comunicação entre o nó e o servidor de aplicativos CycleCloud. Esse gerenciamento permite que o CycleCloud monitore o status das VMs de provisionamento e sincronize a orquestração de vários nós no cluster.
- HealthCheck – O Jetpack usa HealthCheck para determinar a integridade das VMs para que ela possa encerrar VMs não íntegras.
Instalação do Jetpack
O instalador do Jetpack é armazenado em cache em sua Conta de Armazenamento do Azure quando você inicia um cluster pela primeira vez usando o CycleCloud. À medida que as VMs de cluster são provisionadas, uma extensão de script personalizado é executada como parte do processo de inicialização. Essa extensão baixa o instalador do Jetpack do cache do Armazenamento do Azure e, em seguida, instala-o na VM.
O instalador do Jetpack:
- Desempacota arquivos Jetpack em uma única árvore de diretórios.
- Windows: C:\cycle\jetpack
- Linux: /opt/cycle/Jetpack
- Cria scripts de inicialização do sistema que configuram uma VM como um nó de cluster
- Instala o serviço HealthCheck
- Instala a Ferramenta de Linha de Comando do Jetpack para:
- Windows: C:\cycle\jetpack\bin\jetpack
- Linux: /opt/cycle/jetpack/bin/jetpack
- Cria regras de udev no Linux
- Define a variável de ambiente
CYCLECLOUD_HOME
Observação
Se o Jetpack estiver pré-instalado na imagem, a extensão de script personalizado não reinstala o Jetpack. Em vez disso, ele executa uma etapa de inicialização que valida a conexão do nó com o CycleCloud e inicia os healthcheck e jetpackd serviços antes de continuar a configurar o nó.
Subdiretórios Jetpack
| Diretório | Descrição |
|---|---|
bin |
Binários e scripts úteis. |
config |
Arquivos e scripts de configuração definidos pelo usuário e definidos pelo cluster. |
logs |
Logs gerados unindo um cluster e convergindo o nó. É de particular interesse jetpack.log, que contém os resultados do processo de convergência. |
run |
Arquivos de runtime gerados pelo sistema. Não recomendamos acessar diretamente esses arquivos. |
system |
Arquivos internos. Não recomendamos o uso direto de arquivos neste diretório, pois eles podem mudar significativamente de versão para versão. |
HealthCheck
O serviço HealthCheck executa scripts definidos pelo usuário para determinar a viabilidade atual de uma VM como um nó de cluster. Para obter mais informações, consulte a documentação do HealthCheck .
Ferramenta de linha de comando Jetpack
A ferramenta de linha de comando jetpack fornece um conjunto útil de subcomandos para manipular a VM atual e interagir com o Azure CycleCloud.
| Comando | Descrição |
|---|---|
jetpack autoscale |
Dimensionar automaticamente o cluster ao qual este nó pertence. |
jetpack config |
Recupere um valor de configuração. |
jetpack converge |
Execute um "convergir" para atualizar a configuração do nó. |
jetpack download |
Baixe um recurso de blob de um projeto no Armazenamento do Azure. |
jetpack keepalive |
Atrase a terminação do sistema pelo Serviço HealthCheck. |
jetpack log |
Registre uma mensagem na interface do usuário do cluster CycleCloud. |
jetpack run_on_shutdown |
Adicione um script para chamar antes do término do nó. |
jetpack send |
Envie uma mensagem AMQP arbitrária para o servidor CycleCloud. |
jetpack shutdown |
Solicite o desligamento da VM pelo CycleCloud. |
jetpack test |
Execute testes associados a projetos atribuídos à VM. |
jetpack users |
Listar usuários que o CycleCloud gerencia nesta VM. |
jetpack report_issue |
Arquiva arquivos de log da VM no Armazenamento do Azure |
escala automática do jetpack
Use jetpack autoscale para definir os destinos de dimensionamento automático para o cluster ao qual o nó pertence. Você pode dimensionar clusters por núcleos, contagem de instâncias ou definições personalizadas.
Para escalar para 100 núcleos:
jetpack autoscale --corecount=100
Para dimensionar o "gpu" nodearray para cinco nós:
jetpack autoscale --instancecount 5 --name=gpu
Para personalizar o dimensionamento automático, escreva um arquivo JSON no disco que contém a definição de nodearray que você deseja dimensionar. Para escalar por 100 núcleos:
[
{
"Name": "execute",
"TargetCoreCount": 100
}
]
jetpack autoscale --file=custom-autoscale.json
configuração do jetpack
Use jetpack config para buscar informações que o CycleCloud passa para uma VM. Ele expõe:
- todas as propriedades do sistema disponibilizadas via Ohai
- um subconjunto dos metadados do Azure da VM
- Informações sobre o cluster CycleCloud principal.
convergir o jetpack
jetpack converge O comando baixa todos os projetos do CycleCloud associados ao nó e inicia um processo convergente que executa os scripts de cluster-init para o nó.
baixar o jetpack
O comando jetpack download baixa um blob que você carregou com um projeto no nó. Você deve especificar o projeto ao qual o blob pertence.
Para baixar o blob big-file.zip que você carregou como parte do projeto example-project para o diretório atual:
jetpack download --project example-project big-file.zip .
manter jetpack ativo
jetpack keepalive O comando interage com o serviço HealthCheck para atrasar o término da VM devido a uma falha do HealthCheck. Você pode definir o atraso para um período fixo ou indefinidamente. Por padrão, o comando atrasa a terminação por uma hora.
Para atrasar a terminação do sistema em uma hora:
jetpack keepalive
Para atrasar a terminação do sistema em seis horas:
jetpack keepalive 6h
Para desabilitar totalmente o serviço HealthCheck, ou seja, para atrasar a terminação indefinidamente:
jetpack keepalive forever
Observação
Somente a opção forever está disponível para HealthCheck em VMs do Windows.
log do Jetpack
jetpack log envia uma mensagem de log de volta ao CycleCloud. A mensagem aparece no log do servidor de aplicativos (normalmente /opt/cycle_server/cycle_server.log), no log de eventos principal e na página da interface do usuário do cluster.
Cada mensagem tem duas propriedades: level e priority.
A level propriedade indica o tipo de mensagem. Os níveis válidos são info, warne error. O nível não indica a importância de uma determinada mensagem. Por exemplo, alguns erros são triviais e algumas mensagens informativas são críticas.
A prioridade indica a importância da mensagem. Os valores de prioridade válidos são 'baixo', 'médio' e 'alto'. Somente as mensagens com prioridade de média ou superior são exibidas na página da interface do usuário do cluster para evitar inundar a página com mensagens de baixa prioridade.
Para enviar uma mensagem de log informativa exibida na página da interface do usuário do cluster:
jetpack log 'system is now ready'
Para enviar uma mensagem de log de baixa prioridade que você não deseja exibir na página da interface do usuário do cluster:
jetpack log 'system is now ready' --priority low
Por padrão, as mensagens com um nível de erro têm uma prioridade alta. Para enviar uma mensagem de erro:
jetpack log 'the machine cannot process jobs' --level error
Para enviar uma mensagem de erro trivial:
jetpack log 'the machine cannot process jobs' --level error --priority low
jetpack run_on_shutdown
O comando jetpack run_on_shutdown registra um script bash para chamar antes do término do nó.
O comando usa o caminho absoluto para o script como um argumento.
Quando o Azure encerra o nó e as Notificações de Encerramento são habilitadas, o Jetpack recebe a notificação da terminação. Ele tenta executar o script antes que o nó seja desligado.
Os nós devem habilitar notificações de terminação para habilitar run_on_shutdown.
jetpack run_on_shutdown /tmp/example.sh
Este comando não é suportado para nodos do Windows.
envio do Jetpack
jetpack send envia uma mensagem AMQP ao CycleCloud. É um comando avançado que não recomendamos, a menos que você esteja desenvolvendo plug-ins para o CycleCloud.
Você pode enviar cadeias de caracteres ou arquivos arbitrários com chaves de roteamento AMQP especificadas.
desligamento do jetpack
Use jetpack shutdown para solicitar que o CycleCloud encerre o nó. Você pode passar opções para o comando para especificar o motivo da solicitação de desligamento (ociosa versus não íntegra) e como encerrar o nó (encerrar vs desalocar).
Para desligar um nó não íntegro, use o seguinte comando:
jetpack shutdown --unhealthy
Para desalocar o nó:
jetpack shutdown --deallocate
teste do Jetpack
Use jetpack test para executar todos os testes incluídos com projetos atribuídos ao nó. O comando imprime os resultados para stdout.
usuários do jetpack
jetpack users lista os usuários que são gerenciados pelo CycleCloud no nó. Essa lista pode ser alterada ao longo do tempo à medida que os usuários são atribuídos e removidos para o cluster.
Para obter uma impressão amigável dos usuários atribuídos ao nó:
$ jetpack users
Username: test-user
Full Name: Test User
UID: 10201
Is Admin: True
Is Owner: True
Para obter a saída JSON amigável ao script:
$ jetpack users --json
[
{
"fullName": "Test User",
"isAdmin": true,
"isOwner": true,
"name": "test-user",
"publicKeys": [
"ssh-rsa public-key-goes-here\n"
],
"uid": 10201
}
]
jetpack report_issue
jetpack report_issue arquiva diretórios de log da VM, opcionalmente os carregando para o Armazenamento do Azure e criando uma URL assinada para acesso externo. O comando carrega logs na conta de Armazenamento do Azure referenciada pelo Locker do nó. Quando você arquiva um arquivo no Armazenamento do Azure, o token SAS resultante tem acesso de leitura somente por 30 dias.
Uso:
$ jetpack report_issue [LOG_PATH] [--upload/--no-upload] [--sign/--no-sign]
Para arquivar, carregar e assinar os logs padrão do Jetpack ($JETPACK_HOME/logs):
$ jetpack report_issue
Logs can be found at: https://testaccount.blob.core.windows.net/cyclecloud/issues/TestCluster-execute-1-77777964-8b74-420d-ad44-094edf7695f2.zip?sv=2017-11-09&rsct=binary&sig=jBJUlYo10lRq0eW94I%2B6syzYVmgo1qcTFUc35D/q0Tg%3D&se=2020-12-04T15%3A15%3A00Z&spr=https&rscd=disposition%3Dfile%3B%20attachment&sp=r&sr=b
Signed URL will expire on: 2020-12-04T15:15:00Z
Para arquivar, carregar, mas não assinar um diretório de log não padrão:
$ jetpack report_issue /var/log/azure --no-sign
Logs can be found at: https://testaccount.blob.core.windows.net/cyclecloud/issues/TestCluster-execute-1-d67fe991-1dac-4644-9af7-50c835726f5e.zip
Para arquivar logs na VM local:
$ jetpack report_issue --no-upload
Logs can be found at: /tmp/tmp4nscw705/TestCluster-execute-1-4249e973-3d87-4b14-94ed-6856a5267972.zip