Megosztás a következőn keresztül:


Fürtsablonok

Az Azure CycleCloud sablonokkal definiálja a fürtkonfigurációkat. A CycleCloud alapértelmezés szerint számos sablont tartalmaz, és a támogatott sablonok teljes listája elérhető a GitHubon. Létrehozhat új sablonokat, vagy testre szabhatja a meglévőket. Előfordulhat például, hogy testre szeretne szabni egy meglévő sablont, hogy kihasználhassa a kihasználatlan virtuális gépeket, vagy hozzáadhat egy VPC-t a saját hálózatának bővítéséhez.

Konfiguráció jelölése

Az Azure CycleCloud-fürtsablonok mindegyike rendelkezik egy vagy több [[[konfiguráció]] szakaszsal, amelyek egy csomóponthoz vagy csomóponthoz tartoznak. Ezek a szakaszok a CycleCloud által indított csomópontok szoftverkonfigurációs beállításait adják meg. A pontozott jelölés a konfigurálni kívánt attribútumok megadására szolgál:

[[node scheduler]]
  [[[configuration]]]
  cycle_server.admin.name = poweruser
  cycle_server.admin.pass = super_secret
  cycle_server.http_port = 8080
  cycle_server.https_port = 8443

A gépelés mentéséhez megadhat egy konfigurációs szakaszt is a jelöléssel prefix . Ugyanez a konfiguráció a következőképpen is írható:

[[node scheduler]]
  [[[configuration cycle_server]]]
  admin.name = poweruser
  admin.pass = super_secret
  http_port = 8080
  https_port = 8443

Egy csomópont/csomópontarray szükség esetén több konfigurációs szakaszt is tartalmazhat:

[[node scheduler]]
  [[[configuration]]]
  run_list = role[sge_scheduler_node]

  [[[configuration cycle_server.admin]]]
  name = poweruser
  pass = super_secret

Fürtsablon paraméterei

A fürtsablonok olyan paramétereket tartalmazhatnak, amelyek módosítják a fürt egyes részeinek értékeit anélkül, hogy magát a sablont kellene módosítaniuk. Ez különösen akkor hasznos, ha sok kisebb különbséggel rendelkező hasonló fürtre van szükség, például fejlesztési és éles környezetek üzembe helyezésére. A fürtsablonon belüli paraméter megadásának szintaxisa egy "$" előtaggal rendelkező változó előtagja. Egy alapszintű (nem funkcionális) sablon, amely néhány paraméterrel rendelkezik, a következőképpen nézhet ki:

# template.txt
[cluster gridengine]

  [[node scheduler]]
  MachineType = $machine_type

    [[[configuration]]]
    gridengine.slots = $slots

Ez a sablon két paramétert határoz meg: $machine_type és $slots. Ezzel a sablonnal definiálhat olyan szövegfájlokat, amelyek a paraméterek értékeit tartalmazzák a fejlesztői és a prod környezetekben. A paraméterfájl lehet JSON- vagy Java-tulajdonságok fájlformátuma:

# dev-params.json
{
  "machine_type": "H16r",
  "slots": 2
}

# prod-params.properties
machine_type = Standard_D4v3
slots = 8

Ez létrehoz egy JSON-fájlt, amely tartalmazza a dev paramétereit, és egy .properties fájlt, amely az éles környezet értékeit tartalmazza.

Megjegyzés

A paraméterfájl fájlnév-utótagja fontos! JSON használata esetén a fájlt el kell nevezni foo.json. Java-tulajdonságok használata esetén a fájlnak a következővel kell végződnie .properties: . A helytelenül elnevezett paraméterfájlok nem importálhatók megfelelően.

Most már importálhatja a sablont a paraméterfájl használatával a hiányzó részek kitöltéséhez:

cyclecloud import_cluster gridengine-dev -f template.txt -p dev-params.json -c gridengine

cyclecloud import_cluster gridengine-prod -f template.txt -p prod-params.properties -c gridengine

A fürtsablonban lévő paraméterek egy részét vagy egészét is meg lehet határozni:

# template.txt
[cluster gridengine]

  [[node scheduler]]
  MachineType = $machine_type

    [[[configuration]]]
    gridengine.slots = $slots

[parameters]
  [[parameter machine_type]]
  DefaultValue = Standard_D4v3

  [[parameter slots]]
  DefaultValue = 2

Az egyes paraméterek alapértelmezett értékei a sablonban vannak definiálva (a "dev" értékeket használtuk alapértelmezett értékként).

Mostantól paraméterfájl nélkül is importálható a sablon, és a rendszer automatikusan felhasználja a "dev" értékeket. Amikor létre kell hoznia egy "prod" fürtöt, a prod-params.properties fájllal felülírhatja a sablonfájlban megadott értékeket.

Megjegyzés

A paraméternevek tartalmazhatnak betűket, számokat és aláhúzásjeleket.

A sablonban szereplő paraméterhivatkozások két űrlap egyikét használhatják:

$param: Egyetlen, elnevezett paraméter értékét használja param

${expr}: Az összes paraméter kontextusában kiértékeli expr , így dinamikus értékeket is kiszámíthat. Például:

Attribute = ${(a > b ? a : b) * 100}

Ez két paraméter közül a nagyobbat veszi fel, a és bmegszorozza 100-mal. A kifejezés értelmezése és kiértékelése a ClassAd nyelvi specifikációja alapján történik.

Ha egy paraméterhivatkozás önmagában létezik, a paraméter értéke lesz használva, amely támogatja a nem sztringtípusokat, például a logikai értékeket, az egész számokat és a beágyazott struktúrákat, például a listákat. Ha azonban a hivatkozás más szövegbe van ágyazva, annak értéke konvertálódik, és egy sztringben szerepel. Tegyük fel például, hogy param két helyen van definiálva 456 és hivatkozva:

  • Attribute1 = $param
  • Attribútum2 = 123$param

Az érték Attribute1 a szám 456, de az érték Attribute2 a sztring "123456". Vegye figyelembe, hogy ${param} ugyanaz $param, mint a paraméterhivatkozások beágyazása összetettebb helyzetekben:

  • Attribútum3 = 123$param789
  • Attribútum4 = 123${param}789

Attribute3a megkeresi a névvel ellátott param789paramétert, de az Attribútum4 a lekérés "123456789"értékét param használja.

Géptípusok

Az Azure CycleCloud az attribútumon keresztül több géptípust MachineType is támogat. Megkísérli a kapacitás beszerzését a felsorolt sorrendben.

Fürt init specifikációi

Az Azure CycleCloud webalkalmazás lehetővé teszi, hogy a felhasználók egy új fürt létrehozásakor kiválasztják a cluster-init projekt specifikációit. A projekt specifikációi a fürtsablonon belül vannak beállítva:

[parameter ClusterInitSpecs]
Label = Cluster-Init
Description = Cluster init specs to apply to nodes
ParameterType = Cloud.ClusterInitSpecs

[cluster demo]

  [[node defaults]]
  AdditionalClusterInitSpecs = $ClusterInitSpecs

      [[[cluster-init myproject:myspec:1.0.0]]]

Miután hozzáadta ezt a paramétert a fürtsablonhoz, a felhasználó a fájlválasztóval kiválaszthatja a megfelelő projektspecifikációkat egy új fürt létrehozásakor.

Kihasználatlan Virtual Machines

A számítási feladatok költségeinek csökkentése érdekében beállíthatja Interruptible = true. Ez a példányt kihasználatlanként jelöli meg, és ha rendelkezésre áll, többletkapacitást fog használni. Fontos megjegyezni, hogy ezek a példányok nem mindig érhetők el, és bármikor elővehetők, ami azt jelenti, hogy nem mindig megfelelőek a számítási feladatokhoz.

Alapértelmezés szerint az igaz értékre állításkor Interruptible a kihasználatlan példányok maximális ára -1, ami azt jelenti, hogy a példány nem lesz kizárva az ár alapján. A példány ára a Spot aktuális ára, vagy egy standard példány ára lesz, attól függően, hogy melyik alacsonyabb, feltéve, hogy rendelkezésre áll kapacitás és kvóta. Ha egyéni maximális árat szeretne beállítani, használja a MaxPrice kívánt csomópont vagy nodearray attribútumot.

[cluster demo]

  [[nodearray execute]]
  Interruptible = true
  MaxPrice = 0.2

Keresési táblák

Az egyik paraméter hivatkozhat egy másikra, és kiszámíthat egy bizonyos értéket egy keresési táblával. Tegyük fel például, hogy a rendszerképhez egy paramétert kell használnia, ebben az esetben két lehetőség közül választhat:

[[parameter MachineImage]]
    Label = Image
    DefaultValue = image-1000
    Description = Ubuntu 22.04
    Config.Plugin = pico.control.AutoCompleteDropdown
    [[[list Config.Entries]]]
        Name = image-1000
        Label = Ubuntu 20.04
    [[[list Config.Entries]]]
        Name = image-2000
            Label = Ubuntu 22.04

A kiválasztott rendszerkép operációsrendszer-verzióját is lekérheti, és más konfigurációhoz használhatja egy olyan paraméter megadásával, amelynek értéke értéktáblázat:

[[parameter AmiLookup]]
  ParameterType = hidden
  [[[record DefaultValue]]]
      image-1000 = Ubuntu 20.04
      image-2000 = Ubuntu 22.04

Vegye figyelembe, hogy ez rejtett, így nem jelenik meg a felhasználói felületen.

A kiválasztott rendszerképhez használt operációsrendszer-verziót bárhol máshol lekérheti a fürtdefinícióban:

[[node node]]
[[[configuration]]]
version = ${AmiLookup[MachineImage]}

Grafikus felhasználói felület integrációja

A fürtsablon paramétereinek definiálásával kihasználhatja az Azure CycleCloud grafikus felhasználói felületének előnyeit. Paraméterek definiálásakor például a következő attribútumok használhatók a grafikus felhasználói felület létrehozásához:

# template.txt
[cluster gridengine]

  [[node scheduler]]
  MachineType = $machine_type

    [[[configuration]]]
    gridengine.slots = $slots

[parameters]
  [[parameter machine_type]]
  DefaultValue = Standard_D4v3
  Label = Machine Type
  Description = MachineType to use for the Grid Engine scheduler node
  ParameterType = Cloud.MachineType

  [[parameter slots]]
  DefaultValue = 2
  Description = The number of slots for Grid Engine to report for the node

A rendszer a "Label" és a "Description" attribútumot is tartalmazza, amelyek megjelennek a grafikus felhasználói felületen, valamint a választható "ParameterType" attribútumot. A "ParameterType" lehetővé teszi egyéni felhasználói felületi elemek megjelenítését. A fenti példában a "Cloud.MachineType" érték egy legördülő menüt jelenít meg, amely az összes elérhető géptípust tartalmazza. A többi ParameterType érték a következő:

Paraméter típusa Description
Cloud.MachineType Megjeleníti az összes elérhető géptípust tartalmazó legördülő menüt.
Cloud.Credentials Megjeleníti az összes rendelkezésre álló hitelesítő adatot tartalmazó legördülő menüt.
Cloud.Region Az összes elérhető régiót tartalmazó legördülő lista megjelenítése.

Chef-kiszolgáló támogatása

Azure CycleCloud suports ChefServer.

Hozza létre a fájlt chefserver.json , és adja hozzá a hitelesítő adatait. ValidationKey A a chef-kiszolgáló validation.pem fájljának felel meg. Azt is igazolnia validation_client_name kell, hogy módosította-e a chef-validator alapértelmezett értékéről:

{
"AdType" : "Cloud.Locker",
"ValidationKey" : "YOURVALIDATION.PEMHERE",
"ValidationClientName" : "chef-validator",
"Credentials" : "default",
"Location" : "https://mychefserver",
"ChefRepoType" : "chefserver",
"LockerType" : "chefrepo",
"Name" : "chefrepo",
"AccountId" : "default",
"Shared" : false
}

Ezután helyezze a fájlt a könyvtárba /opt/cycle_server/config/data. A rendszer automatikusan importálja.

Egyéni felhasználói rendszerképek sablonokban

Az Azure CycleCloud támogatja az egyéni rendszerképeket a sablonokban. Adja meg közvetlenül a rendszerkép azonosítóját (erőforrás-azonosítóját), ImageIdvagy adja hozzá a lemezképet a lemezkép beállításjegyzékéhez. Ha a rendszerkép a beállításjegyzékben van, hivatkozzon rá a Image csomóponton vagy ImageName a csomóponton. Ez megjelenik a rendszerkép legördülő listájában a fürtlétrehozási oldalon.

A lemezkép-beállításjegyzékben lévő képek egy Package olyan rekordból állnak, amely azonosítja a logikai lemezkép tartalmát, és egy vagy több megfelelő Artifact rekordból áll, amelyek a megfelelő felhőszolgáltató tényleges képazonosítóját adják meg. Például egy olyan egyéni rendszerkép, amelyen az R telepítve van, a csomagrekordból állhat:

AdType = "Package"
Name = "r_execute"
Version = "2.1.1"
PackageType = "image"
Label = "R"

Miután hozzáadta ezt a rekordot, megadhatja a rendszerképet a fürtsablon vagy ImageName = r_execute a fürtsablon hozzáadásávalImage = R.

Ha ez a rendszerkép egyetlen virtuális gépként lett volna használatban egy azonosítóval /subscriptions/xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/images/MyCustomImage, akkor a következő összetevőt kell tárolnia:

AdType = "Artifact"
Package = "r_execute"
Version = "2.1.1"
Name = "az/useast"
Provider = "az"
ImageId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/images/MyCustomImage"

Meg kell adnia Provider az összetevőt.

Egy adott képcsomaghoz annyi összetevőt adhat hozzá, amennyit csak szeretne, de a rendszerkép használatához szükséges összes összetevőt bele kell foglalnia az összes kívánt "helyre" (felhőszolgáltatói fiókonként, régiókra, projektekre stb.). Az összetevő neve nem fontos, azzal a kivételével, hogy az adott csomag és verzió összes összetevőjéhez egyedinek kell lennie. A szolgáltató és a szolgáltatóspecifikus részletek (pl. régió) kombinációjának használata általában ajánlott. A CycleCloud automatikusan kiválasztja a megfelelő összetevőt, hogy megfeleljen a szolgáltatónak és a szolgáltatóspecifikus részleteknek, de a Név elemzése helyett a Provider attribútumot (és régiót stb.) használja.

Ha egynél több azonos nevű képcsomagot ad hozzá, azoknak eltérő verziószámokkal kell rendelkezniük. Egy példány indításakor a CycleCloud automatikusan kiválasztja a legmagasabb verziószámot tartalmazó képet, pontozott sztringként kezeli a verziószámot, és számként összehasonlítja az egyes részeket. A felülbíráláshoz adja meg ImageVersion a csomóponton literálként (pl. 1.2) vagy helyettesítő karakterként (1.x).