Jetpack
Jetpack se vyžaduje na každém uzlu clusteru. Azure CycleCloud ho automaticky nainstaluje na každý virtuální počítač, který je zřízený tak, aby se stal uzlem v clusteru. Jetpack poskytuje tři hlavní funkce:
- Konfigurace uzlu – CycleCloud používá skripty a Chef k automatizaci konfigurace zřízeného virtuálního počítače do funkčního uzlu clusteru. Klient Chefu a také prostředky potřebné ke konfiguraci virtuálního počítače jsou vložené v rámci Jetpacku.
- Distribuovaná synchronizace – Jetpack spravuje komunikaci mezi uzlem a aplikačním serverem CycleCloud. Díky tomu může CycleCloud monitorovat stav zřizovacích virtuálních počítačů a synchronizovat orchestraci více uzlů v clusteru.
- HealthCheck – Jetpack používá HealthCheck k určení stavu virtuálních počítačů, aby bylo možné ukončit virtuální počítače, které nejsou v pořádku.
Instalace Jetpacku
Instalační program Jetpacku se ukládá do mezipaměti ve vašem účtu úložiště Azure při prvním spuštění clusteru pomocí CycleCloudu. Při zřizování virtuálních počítačů clusteru se v rámci procesu spouštění spustí rozšíření vlastních skriptů , které stáhne instalační program Jetpack z mezipaměti Azure Storage a pak ho nainstaluje na virtuální počítač.
Instalační program Jetpacku:
- Rozbalí soubory Jetpack do jednoho adresářového stromu:
- Windows: C:\cycle\jetpack
- Linux: /opt/cycle/Jetpack
- Vytvoří spouštěcí skripty inicializačního systému, které nakonfigurují virtuální počítač jako uzel clusteru.
- Nainstaluje službu HealthCheck .
- Nainstaluje nástroj příkazového řádku Jetpack pro:
- Windows: C:\cycle\jetpack\bin\jetpack
- Linux: /opt/cycle/jetpack/bin/jetpack
- Vytvoří pravidla udev v Linuxu.
- Nastaví proměnnou prostředí.
CYCLECLOUD_HOME
Poznámka
Pokud je v imagi předinstalovaný Jetpack, rozšíření vlastních skriptů je znovu nenainstaluje . Místo toho se spustí krok inicializace, který ověří připojení uzlu k CycleCloudu healthcheck
a před pokračováním v konfiguraci uzlu spustí služby a jetpackd
.
Podadresáře Jetpack
Directory | Description |
---|---|
bin |
Užitečné binární soubory a skripty. |
config |
Konfigurační soubory a skripty definované uživatelem a clusterem |
logs |
Protokoly vygenerované připojením ke clusteru a sblížením uzlu jsou obzvláště zajímavé chef-client.log , které obsahují výsledky z konvergovaných receptů Chefu. |
run |
Soubory modulu runtime vygenerované systémem. Nedoporučujeme přistupovat k těmto souborům přímo. |
system |
Interní soubory. Nedoporučujeme přímo používat žádné soubory v tomto adresáři, protože se můžou výrazně změnit od vydání k vydání. |
Kontrola stavu
Služba HealthCheck spouští uživatelem definované skripty k určení aktuální životaschopnosti virtuálního počítače jako uzlu clusteru. Další informace najdete v dokumentaci ke kontrole stavu .
Nástroj příkazového řádku Jetpack
Nástroj příkazového řádku Jetpack poskytuje užitečnou sadu dílčích příkazů pro manipulaci s aktuálním virtuálním počítačem a interakci s Azure CycleCloud.
Příkaz | Popis |
---|---|
jetpack autoscale |
Automatické škálování clusteru, do který tento uzel patří. |
jetpack config |
Načtěte hodnotu konfigurace. |
jetpack converge |
Spusťte konvergenci Chefu. |
jetpack download |
Stáhněte si prostředek objektu blob z projektu ve službě Azure Storage. |
jetpack keepalive |
Pozdržte ukončení systému službou HealthCheck Service. |
jetpack log |
Zahlaste zprávu do uživatelského rozhraní clusteru CycleCloud. |
jetpack run_on_shutdown |
Přidejte skript, který se má volat před ukončením uzlu. |
jetpack send |
Odešlete na server CycleCloud libovolnou zprávu AMQP. |
jetpack shutdown |
Požádejte o vypnutí virtuálního počítače pomocí CycleCloudu. |
jetpack test |
Spusťte testy přidružené k projektům přiřazeným k virtuálnímu počítači. |
jetpack users |
Vypište uživatele, které bude CycleCloud spravovat na tomto virtuálním počítači. |
jetpack report_issue |
Archivuje soubory protokolů z virtuálního počítače do Azure Storage. |
automatické škálování jetpacku
jetpack autoscale
nastaví cíle automatického škálování pro cluster, do kterého uzel patří. Clustery je možné škálovat podle jader, počtu instancí nebo vlastních definic.
Škálování na 100 jader:
jetpack autoscale --corecount=100
Škálování nodearray gpu na 5 uzlů:
jetpack autoscale --instancecount 5 --name=gpu
Pokud chcete přizpůsobit automatické škálování, musí být soubor JSON zapsán na disk obsahující definici nodearray, kterou chcete škálovat. Škálování podle 100 jader:
[
{
"Name": "execute",
"TargetCoreCount": 100
}
]
jetpack autoscale --file=custom-autoscale.json
konfigurace jetpacku
jetpack config
načítá informace předávané do virtuálního počítače službou CycleCloud. Zpřístupňuje:
- všechny systémové vlastnosti zpřístupněné prostřednictvím Ohai
- podmnožina metadat Azure virtuálního počítače
- informace o nadřazeného clusteru CycleCloud.
jetpack konverge
jetpack converge
stáhne všechny projekty CycleCloud přidružené k uzlu a spustí proces chefu, který spustí všechny recepty Chefu a inicializační skripty clusteru pro uzel.
jetpack download
jetpack download
stáhne objekt blob, který se nahrál s projektem , do uzlu. Musíte zadat projekt, do který objekt blob patří.
Stažení big-file.zip objektů blob, které se nahrály jako součást example-project
projektu, do aktuálního adresáře:
jetpack download --project example-project big-file.zip .
jetpack keepalive
jetpack keepalive
komunikuje se službou HealthCheck a zpozdí ukončení virtuálního počítače kvůli neúspěšné kontrole stavu. Ukončení může být odloženo na pevnou dobu nebo na neurčito. Ve výchozím nastavení se ukončení zpozdí o jednu hodinu.
Zpoždění ukončení systému o jednu hodinu:
jetpack keepalive
Zpoždění ukončení systému o šest hodin:
jetpack keepalive 6h
Úplné zakázání služby HealthCheck, tj. odložení ukončení na neurčito:
jetpack keepalive forever
Poznámka
Na virtuálních forever
počítačích s Windows je k dispozici pouze možnost HealthCheck.
protokol jetpack
jetpack log
odešle zprávu protokolu zpět do CycleCloudu. Zpráva se zobrazí v protokolu aplikačního serveru (obvykle /opt/cycle_server/cycle_server.log), v protokolu hlavních událostí a na stránce uživatelského rozhraní clusteru.
Každá zpráva má dvě vlastnosti: úroveň a prioritu.
Vlastnost level označuje typ zprávy. Platné úrovně jsou "info", "warn" a "error". Úroveň nenaznačuje důležitost dané zprávy – například některé chyby jsou triviální a některé informační zprávy kritické.
Priorita označuje důležitost zprávy. Platné hodnoty priority jsou "nízká", "střední" a "vysoká". Na stránce uživatelského rozhraní clusteru se zobrazují jenom zprávy s prioritou střední nebo vyšší, aby se zabránilo zahltění stránky zprávami s nízkou prioritou.
Odeslání zprávy informačního protokolu, která se zobrazí na stránce uživatelské rozhraní clusteru:
jetpack log 'system is now ready'
Odeslání zprávy protokolu s nízkou prioritou, kterou nechcete zobrazit na stránce uživatelské rozhraní clusteru:
jetpack log 'system is now ready' --priority low
Ve výchozím nastavení mají zprávy s úrovní chyb vysokou prioritu. Odeslání chybové zprávy:
jetpack log 'the machine cannot process jobs' --level error
Odeslání triviální chybové zprávy:
jetpack log 'the machine cannot process jobs' --level error --priority low
jetpack run_on_shutdown
jetpack run_on_shutdown
zaregistruje skript Bash, který se má volat před ukončením uzlu.
Příkaz přebírá absolutní cestu ke skriptu jako argument.
Když Azure ukončí uzel a povolí se oznámení o ukončení , bude Jetpack na ukončení upozorněn a pokusí se skript spustit před vypnutím uzlu.
Uzly musí povolit oznámení o ukončení , aby bylo možné povolit run_on_shutdown
.
jetpack run_on_shutdown /tmp/example.sh
Tento příkaz není podporován pro uzly s Windows.
odeslání jetpacku
jetpack send
odešle zprávu AMQP do Služby CycleCloud. Jedná se o pokročilý příkaz, který se nedoporučuje, pokud vyvíjíte moduly plug-in pro CycleCloud.
Můžete odesílat libovolné řetězce nebo soubory se zadanými směrovacími klíči AMQP.
vypnutí jetpacku
jetpack shutdown
vyžaduje, aby CycleCloud uzel ukončil. Do příkazu je možné předat možnosti, které určují důvod žádosti o vypnutí (nečinný vs. není v pořádku) a také způsob ukončení uzlu (ukončení vs zrušení přidělení).
Vypnutí uzlu, který není v pořádku:
jetpack shutdown --unhealthy
Zrušení přidělení uzlu:
jetpack shutdown --deallocate
test jetpack
jetpack test
spustí všechny testy, které jsou součástí projektů přiřazených k uzlu, a vytiskne výsledky do výstupu stdout.
uživatelé jetpacku
jetpack users
vypíše uživatele, které bude CycleCloud na uzlu spravovat. Tento seznam se může v průběhu času měnit s tím, jak se uživatelé přiřazují a odebírají do clusteru.
Pokud chcete z uživatelů přiřazených k uzlu získat uživatelsky přívětivý výtisk:
$ jetpack users
Username: test-user
Full Name: Test User
UID: 10201
Is Admin: True
Is Owner: True
Pokud chcete získat výstup JSON, který je vhodný pro skripty:
$ jetpack users --json
[
{
"fullName": "Test User",
"isAdmin": true,
"isOwner": true,
"name": "test-user",
"publicKeys": [
"ssh-rsa public-key-goes-here\n"
],
"uid": 10201
}
]
report_issue jetpack
jetpack report_issue
archivuje adresáře protokolů z virtuálního počítače, volitelně je nahraje do služby Azure Storage a vytvoří podepsanou adresu URL pro externí přístup. Protokoly se nahrají do účtu Azure Storage, na který odkazuje Locker uzlu. Při podepisování archivu ve službě Azure Storage bude mít výsledný token SAS přístup jen pro čtení po dobu 30 dnů.
Použití:
$ jetpack report_issue [LOG_PATH] [--upload/--no-upload] [--sign/--no-sign]
Pokud chcete archivovat, nahrajte a podepište výchozí protokoly Jetpacku ($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
Pokud chcete archivovat, nahrát jiný než výchozí adresář protokolů, ale nepodepisovat ho:
$ 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
Jednoduchá archivace protokolů na místním virtuálním počítači:
$ jetpack report_issue --no-upload
Logs can be found at: /tmp/tmp4nscw705/TestCluster-execute-1-4249e973-3d87-4b14-94ed-6856a5267972.zip