Jetpack
Jetpack krävs på varje nod i ett kluster. Den installeras automatiskt av Azure CycleCloud på varje virtuell dator som etableras för att bli en nod i ett kluster. Jetpack har tre huvudfunktioner:
- Nodkonfiguration – CycleCloud använder skript och Chef för att automatisera konfigurationen av en etablerad virtuell dator till en fungerande klusternod. En Chef-klient samt nödvändiga resurser för konfigurationen av den virtuella datorn bäddas in i Jetpack.
- Distribuerad synkronisering – Jetpack hanterar kommunikationen mellan noden och CycleCloud-programservern. Detta gör att CycleCloud kan övervaka statusen för de virtuella etableringsdatorerna och synkronisera orkestreringen av flera noder i klustret.
- HealthCheck – Jetpack använder HealthCheck för att fastställa hälsotillståndet för virtuella datorer så att felaktiga virtuella datorer kan avslutas.
Jetpack-installation
Jetpack-installationsprogrammet cachelagras i ditt Azure Storage-konto när du först startar ett kluster med CycleCloud. När virtuella klusterdatorer etableras körs ett tillägg för anpassat skript som en del av startprocessen som laddar ned Jetpack-installationsprogrammet från Azure Storage-cachen och sedan installerar det på den virtuella datorn.
Jetpack-installationsprogrammet:
- Packar upp Jetpack-filerna till ett enda katalogträd:
- Windows: C:\cycle\jetpack
- Linux: /opt/cycle/Jetpack
- Skapar systeminit-startskript som konfigurerar en virtuell dator som en klusternod
- Installerar HealthCheck-tjänsten
- Installerar Jetpack-kommandoradsverktyget för att:
- Windows: C:\cycle\jetpack\bin\jetpack
- Linux: /opt/cycle/jetpack/bin/jetpack
- Skapar udev-regler i Linux
- Anger miljövariabeln
CYCLECLOUD_HOME
Anteckning
Om Jetpack har förinstallerats på avbildningeninstallerar inte det anpassade skripttillägget Jetpack igen. I stället körs ett initieringssteg som verifierar nodens anslutning till CycleCloud och startar healthcheck
tjänsterna och jetpackd
innan noden konfigureras.
Jetpack-underkataloger
Katalog | Description |
---|---|
bin |
Användbara binärfiler och skript. |
config |
Användardefinierade och klusterdefinierade konfigurationsfiler och skript. |
logs |
Loggar som genereras genom att ansluta till ett kluster och konvergera noden, av särskilt intresse är chef-client.log som innehåller resultatet från konvergerande Chef-recept. |
run |
Körningsfiler som genereras av systemet. Vi rekommenderar inte direkt åtkomst till dessa filer. |
system |
Interna filer. Vi rekommenderar inte att du använder några filer direkt i den här katalogen eftersom de kan ändras avsevärt från version till version. |
Hälsokontroll
HealthCheck-tjänsten kör användardefinierade skript för att fastställa en virtuell dators aktuella livskraft som en klusternod. Mer information finns i HealthCheck-dokumentationen .
Kommandoradsverktyg för Jetpack
Kommandoradsverktyget Jetpack innehåller en användbar uppsättning underkommandon för att manipulera den aktuella virtuella datorn och interagera med Azure CycleCloud.
Kommando | Beskrivning |
---|---|
jetpack autoscale |
Skala klustret automatiskt som den här noden tillhör. |
jetpack config |
Hämta ett konfigurationsvärde. |
jetpack converge |
Kör en Chef-konvergering. |
jetpack download |
Ladda ned en blobresurs från ett projekt i Azure Storage. |
jetpack keepalive |
Fördröj systemavslutning av HealthCheck-tjänsten. |
jetpack log |
Logga ett meddelande till CycleCloud-klustrets användargränssnitt. |
jetpack run_on_shutdown |
Lägg till ett skript som ska anropas innan noden avslutas. |
jetpack send |
Skicka ett godtyckligt AMQP-meddelande till CycleCloud-servern. |
jetpack shutdown |
Begär att den virtuella datorn stängs av av CycleCloud. |
jetpack test |
Kör tester som är associerade med projekt som tilldelats den virtuella datorn. |
jetpack users |
Visa en lista över användare som CycleCloud hanterar på den här virtuella datorn. |
jetpack report_issue |
Arkiverar loggfiler från en virtuell dator till Azure Storage |
jetpack autoscale
jetpack autoscale
anger autoskalningsmålen för klustret som noden tillhör. Kluster kan skalas efter kärnor, antal instanser eller anpassade definitioner.
Skala till 100 kärnor:
jetpack autoscale --corecount=100
Så här skalar du nodmatrisen "gpu" till 5 noder:
jetpack autoscale --instancecount 5 --name=gpu
Om du vill anpassa autoskalning måste en json-fil skrivas till en disk som innehåller den nodearray-definition som du vill skala. Skala med 100 kärnor:
[
{
"Name": "execute",
"TargetCoreCount": 100
}
]
jetpack autoscale --file=custom-autoscale.json
jetpack-konfiguration
jetpack config
hämtar information som skickas till en virtuell dator av CycleCloud. Den exponerar:
- alla systemegenskaper som gjorts tillgängliga via Ohai
- en delmängd av den virtuella datorns Azure-metadata
- information om det överordnade CycleCloud-klustret.
jetpack konvergera
jetpack converge
laddar ned alla CycleCloud-projekt som är associerade med noden och startar en Chef-konvergeringsprocess som kör alla Chef-recept och kluster-init-skript för noden.
jetpack download
jetpack download
laddar ned en blob som laddades upp med ett projekt till noden. Du måste ange det projekt som bloben tillhör.
Så här laddar du ned bloben big-file.zip som laddades upp som en del av example-project
projektet till den aktuella katalogen:
jetpack download --project example-project big-file.zip .
jetpack keepalive
jetpack keepalive
interagerar med HealthCheck-tjänsten för att fördröja avslutningen av den virtuella datorn på grund av en misslyckad HealthCheck. Uppsägningen kan fördröjas under en fast period eller på obestämd tid. Som standard fördröjs avslutningen i en timme.
Så här fördröjer du systemavslut med en timme:
jetpack keepalive
Så här fördröjer du systemavslut med sex timmar:
jetpack keepalive 6h
Om du vill inaktivera tjänsten HealthCheck helt, d.v.s. fördröj avslutning på obestämd tid:
jetpack keepalive forever
Anteckning
forever
Endast alternativet är tillgängligt för HealthCheck på virtuella Windows-datorer
jetpack-logg
jetpack log
skickar ett loggmeddelande tillbaka till CycleCloud. Meddelandet visas i programserverloggen (vanligtvis /opt/cycle_server/cycle_server.log), huvudhändelseloggen och sidan Klustergränssnitt.
Varje meddelande har två egenskaper: nivå och prioritet.
Nivåegenskapen anger typen av meddelande. Giltiga nivåer är "info", "warn" och "error". Nivån anger inte vikten av ett visst meddelande – till exempel är vissa fel triviala och vissa informationsmeddelanden kritiska.
Prioritet anger meddelandets betydelse. Giltiga prioritetsvärden är "low", "medium" och "high". Endast meddelanden med en prioritet på medelhög eller högre visas på sidan Klustergränssnitt för att undvika att överbelasta sidan med meddelanden med låg prioritet.
Så här skickar du ett informationsloggmeddelande som visas på sidan Klustergränssnitt:
jetpack log 'system is now ready'
Så här skickar du ett loggmeddelande med låg prioritet som du inte vill ska visas på sidan Klustergränssnitt:
jetpack log 'system is now ready' --priority low
Som standard har meddelanden med en felnivå hög prioritet. Så här skickar du ett felmeddelande:
jetpack log 'the machine cannot process jobs' --level error
Så här skickar du ett enkelt felmeddelande:
jetpack log 'the machine cannot process jobs' --level error --priority low
jetpack run_on_shutdown
jetpack run_on_shutdown
registrerar ett bash-skript som ska anropas innan noden avslutas.
Kommandot tar den absoluta sökvägen till skriptet som ett argument.
När noden avslutas av Azure, om Avslutningsmeddelanden är aktiverat, meddelas Jetpack om avslutningen och försöker köra skriptet innan noden stängs av.
Noder måste aktivera avslutningsmeddelanden för att aktivera run_on_shutdown
.
jetpack run_on_shutdown /tmp/example.sh
Det här kommandot stöds inte för Windows-noder.
jetpack send
jetpack send
skickar ett AMQP-meddelande till CycleCloud. Det är ett avancerat kommando som inte rekommenderas om du inte utvecklar plugin-program för CycleCloud.
Du kan skicka godtyckliga strängar eller filer med angivna AMQP-routningsnycklar.
jetpack-avstängning
jetpack shutdown
begär att CycleCloud avslutar noden. Alternativ kan skickas till kommandot för att ange orsaken till avstängningsbegäran (inaktiv eller inte felfri) samt hur du avslutar noden (avsluta eller frigöra).
Så här stänger du av en nod med feltillstånd:
jetpack shutdown --unhealthy
Så här frigör du noden:
jetpack shutdown --deallocate
jetpack-test
jetpack test
kör alla tester som ingår i projekt som tilldelats noden och skriver ut resultatet till stdout.
jetpack-användare
jetpack users
visar en lista över de användare som CycleCloud ska hantera på noden. Den här listan kan ändras med tiden när användare tilldelas och tas bort till klustret.
Så här hämtar du en användarvänlig utskrift av de användare som är tilldelade till noden:
$ jetpack users
Username: test-user
Full Name: Test User
UID: 10201
Is Admin: True
Is Owner: True
Så här hämtar du skriptvänliga JSON-utdata:
$ 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
arkiverar loggkataloger från den virtuella datorn, om du vill kan du ladda upp dem till Azure Storage och skapa en signerad URL för extern åtkomst. Loggar laddas upp till Azure Storage-kontot som refereras av nodens Locker. När du signerar ett arkiv i Azure Storage har den resulterande SAS-token skrivskyddad åtkomst i 30 dagar.
Användning:
$ jetpack report_issue [LOG_PATH] [--upload/--no-upload] [--sign/--no-sign]
Om du vill arkivera laddar du upp och signerar Standard Jetpack-loggarna ($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
Om du vill arkivera laddar du upp men signerar inte en loggkatalog som inte är standard:
$ 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
Så här arkiverar du loggar på den lokala virtuella datorn:
$ jetpack report_issue --no-upload
Logs can be found at: /tmp/tmp4nscw705/TestCluster-execute-1-4249e973-3d87-4b14-94ed-6856a5267972.zip