Sdílet prostřednictvím


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