Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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. Jetpack fornece três funções principais:
- Configuração de 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 incorporados 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 o HealthCheck para determinar a integridade das VMs para que possa encerrar VMs não íntegras.
Instalação do Jetpack
O instalador do Jetpack é armazenado em cache na sua Conta de Armazenamento Azure quando inicia um cluster pela primeira vez utilizando o CycleCloud. À medida que as VMs de cluster são provisionadas, uma extensão de script personalizada é executada como parte do processo de inicialização. Esta extensão baixa o instalador do Jetpack do cache do Armazenamento do Azure e o instala na VM.
O instalador do Jetpack
- Desempacota os ficheiros do Jetpack para 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 Jetpack para:
- Windows: C:\cycle\jetpack\bin\jetpack
- Linux: /opt/cycle/jetpack/bin/jetpack
- Cria regras 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 personalizada não reinstalará 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 serviços healthcheck e jetpackd 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 pelo cluster. |
logs |
Logs gerados pela junção de um cluster e convergência do nó. De particular interesse é jetpack.log, que contém os resultados do processo de convergência. |
run |
Arquivos de tempo de execução gerados pelo sistema. Não recomendamos o acesso direto a esses ficheiros. |
system |
Ficheiros internos. Não recomendamos o uso direto de quaisquer ficheiros neste diretório, pois podem mudar significativamente de versão para versão. |
Exame de saúde
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 |
Ajustar automaticamente o cluster a que este nó pertence. |
jetpack config |
Recuperar um valor de configuração. |
jetpack converge |
Executar um "converge" para atualizar a configuração do nó. |
jetpack download |
Transfira um recurso blob de um projeto no Azure Storage. |
jetpack keepalive |
Atraso na terminação do sistema pelo Serviço de Verificação de Saúde. |
jetpack log |
Registar uma mensagem na Interface do Utilizador do cluster CycleCloud. |
jetpack run_on_shutdown |
Adicione um script para chamar antes do encerramento do nó. |
jetpack send |
Enviar uma mensagem AMQP arbitrária para o servidor CycleCloud. |
jetpack shutdown |
Solicitar o encerramento da VM pelo CycleCloud. |
jetpack test |
Execute testes associados a projetos atribuídos à VM. |
jetpack users |
Liste os usuários que o CycleCloud gerencia nesta VM. |
jetpack report_issue |
Arquiva ficheiros de registo da VM para o Armazenamento do Azure |
jetpack escalamento automático
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 "Nodearray GPU" para cinco nós:
jetpack autoscale --instancecount 5 --name=gpu
Para personalizar o dimensionamento automático, escreva um arquivo JSON no disco que contenha 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
Jetpack configuração
Use jetpack config para buscar informações que o CycleCloud passa para uma VM. Expõe:
- todas as propriedades do sistema disponibilizadas via Ohai
- um subconjunto dos metadados do Azure da máquina virtual
- informações sobre o cluster principal CycleCloud.
Jetpack convergir
jetpack converge O comando baixa todos os projetos do CycleCloud associados ao nó e inicia um processo de convergência que executa os scripts cluster-init para o nó.
baixar jetpack
jetpack download O comando baixa um blob que você carregou com um projeto para o nó. É necessário especificar o projeto ao qual o blob pertence.
Para baixar o blob big-file.zip que foi carregado como parte do projeto example-project para o diretório atual:
jetpack download --project example-project big-file.zip .
jetpack manter ativo
jetpack keepalive interage com o serviço HealthCheck para atrasar o encerramento da VM devido a uma falha 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 adiar a terminação do sistema por uma hora:
jetpack keepalive
Para atrasar a terminação do sistema por seis horas:
jetpack keepalive 6h
Para desativar totalmente o serviço HealthCheck, ou seja, para atrasar a rescisão indefinidamente:
jetpack keepalive forever
Observação
Somente a forever opção está disponível para HealthCheck em VMs do Windows.
Registo de Jetpack
jetpack log envia uma mensagem de log de volta para o 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 críticas.
Prioridade indica a importância da mensagem. Valores válidos de prioridade são 'baixo', 'médio' e 'alto'. Apenas mensagens com prioridade média ou superior são exibidas na página da interface do Cluster para evitar encher a página com mensagens de baixa prioridade.
Para enviar uma mensagem de log informativa que aparece na página 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 que apareça na página Interface do Usuário do Cluster:
jetpack log 'system is now ready' --priority low
Por padrão, mensagens com nível de erro têm alta prioridade. 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 executar_ao_desligar
O jetpack run_on_shutdown comando registra um script bash a ser chamado antes do encerramento do nó.
O comando aceita o caminho absoluto para o script como argumento.
Quando o Azure encerra o nó e as Notificações de Rescisão são habilitadas, o Jetpack recebe uma notificação da rescisão. Tenta executar o script antes que o nó seja desligado.
Os nós devem ativar Notificações de Término para ativar run_on_shutdown.
jetpack run_on_shutdown /tmp/example.sh
Este comando não é compatível com sistemas Windows.
jetpack enviar
jetpack send envia uma mensagem AMQP para o CycleCloud. É um comando avançado que não recomendamos a menos que você esteja desenvolvendo plugins para o CycleCloud.
Você pode enviar cadeias de caracteres ou ficheiros arbitrários com chaves de encaminhamento AMQP especificadas.
Encerramento do jetpack
Use jetpack shutdown para pedir que o CycleCloud encerre o nó. Você pode passar opções para o comando para especificar o motivo da solicitação de desligamento (inativo vs não saudável) e como encerrar o nó (encerrar vs dealocar).
Para desligar um nó inativo, use o seguinte comando:
jetpack shutdown --unhealthy
Para desalocar o nó:
jetpack shutdown --deallocate
teste de jetpack
Use jetpack test para executar quaisquer testes incluídos com projetos atribuídos ao nó. O comando imprime os resultados em stdout.
Utilizadores do Jetpack
jetpack users lista os usuários que o CycleCloud gerencia no nó. Essa lista pode mudar ao longo do tempo à medida que os usuários são atribuídos e removidos para o cluster.
Para obter uma impressão fácil de usar dos utilizadores atribuídos ao nó:
$ jetpack users
Username: test-user
Full Name: Test User
UID: 10201
Is Admin: True
Is Owner: True
Para obter um output JSON compatível com scripts:
$ jetpack users --json
[
{
"fullName": "Test User",
"isAdmin": true,
"isOwner": true,
"name": "test-user",
"publicKeys": [
"ssh-rsa public-key-goes-here\n"
],
"uid": 10201
}
]
jetpack reportar_problema
jetpack report_issue arquiva diretórios de logs da VM, opcionalmente carregando-os para o Armazenamento do Azure e criando um URL assinado para acesso externo. O comando carrega logs na conta de Armazenamento do Azure referenciada pelo Locker do nó. Ao arquivar no Armazenamento do Azure, o token SAS resultante tem acesso somente leitura por 30 dias.
Utilização:
$ 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