Jetpack

A Jetpack a fürt minden csomópontján szükséges. Az Azure CycleCloud automatikusan telepíti minden olyan virtuális gépen, amely egy fürt csomópontjává válik. A Jetpack három fő funkciót biztosít:

  • Csomópontkonfiguráció – A CycleCloud szkriptek és Chef használatával automatizálja a kiépített virtuális gép konfigurálását egy működő fürtcsomóponton. A Chef-ügyfél és a virtuális gép konfigurálásának szükséges erőforrásai a Jetpackbe vannak beágyazva.
  • Elosztott szinkronizálás – A Jetpack kezeli a csomópont és a CycleCloud alkalmazáskiszolgáló közötti kommunikációt. Ez lehetővé teszi, hogy a CycleCloud monitorozza a kiépítési virtuális gépek állapotát, és szinkronizálja a fürt több csomópontjának vezénylését.
  • HealthCheck – A Jetpack a HealthCheck használatával határozza meg a virtuális gépek állapotát a nem megfelelő állapotú virtuális gépek leállítása érdekében.

Jetpack telepítése

A Jetpack telepítő gyorsítótárazása az Azure Storage-fiókban történik, amikor először indít el fürtöt a CycleCloud használatával. A fürt virtuális gépeinek kiépítésekor a rendszer a rendszerindítási folyamat részeként végrehajt egy egyéni szkriptbővítményt , amely letölti a Jetpack telepítőt az Azure Storage-gyorsítótárból, majd telepíti azt a virtuális gépre.

A Jetpack telepítője:

  • A Jetpack-fájlokat egyetlen könyvtárfára csomagolja ki:
    • Windows: C:\cycle\jetpack
    • Linux: /opt/cycle/Jetpack
  • Rendszer init indítási szkriptjeinek létrehozása, amelyek fürtcsomópontként konfigurálnak egy virtuális gépet
  • A HealthCheck szolgáltatás telepítése
  • Telepíti a Jetpack parancssori eszközt a következőre:
    • Windows: C:\cycle\jetpack\bin\jetpack
    • Linux: /opt/cycle/jetpack/bin/jetpack
  • Udev-szabályok létrehozása Linuxon
  • Beállítja a környezeti változót CYCLECLOUD_HOME

Megjegyzés

Ha a Jetpack előre telepítve van a lemezképen, az egyéni szkriptbővítmény nem telepíti újra a Jetpacket. Ehelyett egy inicializálási lépés lesz futtatva, amely ellenőrzi a csomópont és a CycleCloud közötti kapcsolatot, és elindítja a és jetpackd a healthcheck szolgáltatásokat, mielőtt folytatná a csomópont konfigurálását.

Jetpack alkönyvtárak

Címtár Description
bin Hasznos bináris fájlok és szkriptek.
config Felhasználó által definiált és fürtözött konfigurációs fájlok és szkriptek.
logs A fürtök összekapcsolásával és a csomópont konvergensítésével létrehozott naplók különösen érdekesek a chef-client.log , amely az átszervezett Chef-receptek eredményeit tartalmazza.
run A rendszer által létrehozott futtatókörnyezeti fájlok. Nem javasoljuk, hogy közvetlenül hozzáférjen ezekhez a fájlokhoz.
system Belső fájlok. Nem javasoljuk közvetlenül a könyvtárban található fájlok használatát, mivel azok jelentősen változhatnak a kiadásról a kiadásra.

Állapotellenőrzés

A HealthCheck szolgáltatás felhasználó által definiált szkripteket hajt végre a virtuális gép fürtcsomópontként való jelenlegi életképességének meghatározásához. További információért tekintse meg a HealthCheck dokumentációját.

Jetpack parancssori eszköz

A Jetpack parancssori eszköz hasznos alparancsokat biztosít az aktuális virtuális gép kezeléséhez és az Azure CycleCloud használatához.

Parancs Leírás
jetpack autoscale Automatikusan skálázhatja azt a fürtöt, amelyhez ez a csomópont tartozik.
jetpack config Konfigurációs érték lekérése.
jetpack converge Futtass ki egy Chef-konvergenst.
jetpack download Bloberőforrás letöltése egy azure storage-beli projektből.
jetpack keepalive Késlelteti a rendszer leállását a HealthCheck szolgáltatással.
jetpack log Üzenet naplózása a CycleCloud-fürt felhasználói felületén.
jetpack run_on_shutdown Adjon hozzá egy szkriptet, amelyet a csomópont leállítása előtt kell meghívni.
jetpack send Küldjön egy tetszőleges AMQP-üzenetet a CycleCloud-kiszolgálónak.
jetpack shutdown Kérje le a virtuális gép CycleCloud általi leállítását.
jetpack test Futtassa a virtuális géphez rendelt projektekhez társított teszteket.
jetpack users Listázhatja azokat a felhasználókat, amelyeket a CycleCloud kezel ezen a virtuális gépen.
jetpack report_issue Naplófájlok archiválása virtuális gépről az Azure Storage-ba

jetpack automatikus skálázás

jetpack autoscale beállítja annak a fürtnek az automatikus skálázási céljait, amelyhez a csomópont tartozik. A fürtök skálázhatók magok, példányok száma vagy egyéni definíciók szerint.

100 magos skálázás:

jetpack autoscale --corecount=100

A "gpu" csomópontarray 5 csomópontra való skálázása:

jetpack autoscale --instancecount 5 --name=gpu

Az automatikus skálázás testreszabásához json-fájlt kell írni a skálázni kívánt nodearray definíciót tartalmazó lemezre. 100 magos méretezés:

[
  {
      "Name": "execute",
      "TargetCoreCount": 100
  }
]
jetpack autoscale --file=custom-autoscale.json

jetpack-konfiguráció

jetpack config beolvassa a Virtuális gépre a CycleCloud által átadott információkat. A következőket teszi elérhetővé:

  • az Ohai-on keresztül elérhető összes rendszertulajdonság
  • a virtuális gép Azure-metaadatainak egy részhalmaza
  • információk a szülő CycleCloud-fürtről.

jetpack konvergens

jetpack converge Letölti a csomóponthoz társított összes CycleCloud-projektet, és elindít egy Chef-konvergens folyamatot, amely futtatja a csomóponthoz tartozó Chef-recepteket és cluster-init szkripteket.

jetpack letöltés

jetpack download Egy projekttel feltöltött blobot tölt le a csomópontra. Meg kell adnia azt a projektet, amelyhez a blob tartozik.

A projekt részeként feltöltött blob big-file.zip letöltése az example-project aktuális könyvtárba:

jetpack download --project example-project big-file.zip .

jetpack keepalive

jetpack keepalive a HealthCheck szolgáltatással együttműködve késlelteti a virtuális gép leállását egy sikertelen HealthCheck miatt. A felmondás határozott időre vagy határozatlan időre is késleltethető. Alapértelmezés szerint a leállítás egy órát késik.

A rendszer leállításának késleltetése egy órával:

jetpack keepalive

A rendszer leállításának késleltetése hat órával:

jetpack keepalive 6h

A HealthCheck szolgáltatás teljes letiltásához, azaz határozatlan időre történő késleltetéshez:

jetpack keepalive forever

Megjegyzés

Windows rendszerű virtuális gépeken csak a forever HealthCheck beállítás érhető el

jetpack-napló

jetpack log naplóüzenetet küld vissza a CycleCloudnak. Az üzenet megjelenik az alkalmazáskiszolgáló naplójában (általában az /opt/cycle_server/cycle_server.log), a fő eseménynaplóban és a Fürt felhasználói felületén.

Minden üzenet két tulajdonsággal rendelkezik: szint és prioritás.

A level tulajdonság az üzenet típusát jelzi. Az érvényes szintek a következők: "info", "warn" és "error". A szint nem jelzi egy adott üzenet fontosságát – egyes hibák például triviálisak, egyes tájékoztató üzenetek pedig kritikusak.

A prioritás az üzenet fontosságát jelzi. Az érvényes prioritási értékek a következők: "alacsony", "közepes" és "magas". Csak a közepes vagy magasabb prioritású üzenetek jelennek meg a Fürt felhasználói felületén, hogy elkerülje az alacsony prioritású üzeneteket tartalmazó lap elárasztását.

A Fürt felhasználói felületén megjelenő tájékoztató naplóüzenet küldése:

jetpack log 'system is now ready'

Alacsony prioritású naplóüzenet küldése, amelyet nem szeretne megjeleníteni a Fürt felhasználói felületén:

jetpack log 'system is now ready' --priority low

Alapértelmezés szerint a hibaszinttel rendelkező üzenetek prioritása magas. Hibaüzenet küldése:

jetpack log 'the machine cannot process jobs' --level error

Triviális hibaüzenet küldése:

jetpack log 'the machine cannot process jobs' --level error --priority low

jetpack run_on_shutdown

jetpack run_on_shutdown regisztrál egy bash-szkriptet, amelyet a csomópont leállítása előtt kell meghívni.

A parancs argumentumként veszi a szkript abszolút elérési útját.

Ha a csomópontot az Azure leállítja, ha a Leállítási értesítések engedélyezve vannak, a Jetpack értesítést kap a leállításról, és megkísérli futtatni a szkriptet a csomópont leállítása előtt.

A csomópontoknak engedélyeznie kell a megszüntetési értesítéseket az engedélyezéséhez run_on_shutdown.

jetpack run_on_shutdown /tmp/example.sh

Ez a parancs Windows-csomópontok esetében nem támogatott.

jetpack küldés

jetpack send AMQP-üzenetet küld a CycleCloudnak. Ez egy speciális parancs, amely nem ajánlott, hacsak nem fejleszt beépülő modulokat a CycleCloudhoz.

Tetszőleges sztringeket vagy fájlokat küldhet a megadott AMQP-útválasztási kulcsokkal.

jetpack leállítása

jetpack shutdown kéri, hogy a CycleCloud állítsa le a csomópontot. A parancsnak megadhatóak a beállítások a leállítási kérelem okának (tétlen vagy nem kifogástalan állapotú) megadásához, valamint a csomópont leállításának módjához (leállítás vagy felszabadítás).

Nem kifogástalan állapotú csomópont leállítása:

jetpack shutdown --unhealthy

A csomópont felszabadítása:

jetpack shutdown --deallocate

jetpack-teszt

jetpack test futtatja a csomóponthoz rendelt projektekben található teszteket, és az eredményeket stdoutra nyomtatja.

jetpack-felhasználók

jetpack users felsorolja azokat a felhasználókat, amelyeket a CycleCloud kezelni fog a csomóponton. Ez a lista idővel változhat a felhasználók fürthöz való hozzárendelése és eltávolítása során.

A csomóponthoz rendelt felhasználók felhasználóbarát nyomtatásának lekérése:

$ jetpack users

Username: test-user
Full Name: Test User
UID: 10201
Is Admin: True
Is Owner: True

Szkriptbarát JSON-kimenet lekérése:

$ 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 archiválja a naplókönyvtárakat a virtuális gépről, opcionálisan feltölti őket az Azure Storage-ba, és létrehoz egy aláírt URL-címet a külső hozzáféréshez. A rendszer feltölti a naplókat a csomópont Lockerje által hivatkozott Azure Storage-fiókba. Ha az Azure Storage-ban aláír egy archívumot, az eredményül kapott SAS-jogkivonat csak olvasási hozzáféréssel rendelkezik 30 napig.

Használat

$ jetpack report_issue [LOG_PATH] [--upload/--no-upload] [--sign/--no-sign]

Az archiváláshoz töltse fel és írja alá az alapértelmezett Jetpack-naplókat ($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

Az archiváláshoz töltse fel, de ne írja alá a nem alapértelmezett naplókönyvtárat:

$ 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

Ha egyszerűen archiválni szeretné a naplókat a helyi virtuális gépen:

$ jetpack report_issue --no-upload
Logs can be found at: /tmp/tmp4nscw705/TestCluster-execute-1-4249e973-3d87-4b14-94ed-6856a5267972.zip