Beskriva Azure CycleCloud-klustermallar
Azure CycleCloud tillhandahåller mallbaserad distribution av HPC-kluster. Som standard innehåller Azure CycleCloud-programmet flera inbyggda mallar för att distribuera de vanligaste klusterschemaläggarna, inklusive Slurm, PBSPro, LSF, Grid Engine och HT-Condor. Azure CycleCloud GitHub-lagringsplatser erbjuder många scheduler-specifika projekt som du kan anpassa och importera till din Azure CycleCloud-instans. Du har också möjlighet att implementera mallbaserad etablering för dina egna interna utvecklade schemaläggare med hjälp av Plugin-program för autoskalning i CycleCloud.
Mallar underlättar implementering av en mängd olika Azure CycleCloud-funktioner, inklusive stöd för anpassade vm-avbildningar (VM), automatisk skalning och virtuella datorer med oanvänd kapacitet. De minimerar också de kostnader som är associerade med etablering och underhåll av flera distributioner av identiskt konfigurerade kluster, som ofta används för att isolera produktions-, utvecklings- och testmiljöerna.
Dessa fördelar överensstämmer med dina mål för att implementera det nya Azure-residenta klustret för Contoso. För att optimera omfattningen av dessa fördelar bestämmer du dig för att lära dig mer om formatet och processen för att implementera Azure CycleCloud-mallar.
Vilket format har Azure CycleCloud-mallar?
Mallar är INI-formaterade filer som använder deklarativ syntax för att beskriva strukturen och konfigurationen för ett CycleCloud-kluster, inklusive klusternodroller och deras respektive relationer. Mallar består av namngivna avsnitt, med rubriker som anges av ett eller flera par hakparenteser. Avsnitten bildar en hierarki som motsvarar hierarkin för klusterobjekt och deras motsvarande parametrar. Antalet hakparenteser representerar en nivå inom den hierarkin och ökar sekventiellt med varje nivå.
[cluster]
[[node, nodearray]]
[[[volume]]]
[[[network-interface]]]
[[[cluster-init]]]
[[[input-endpoint]]]
[[[configuration]]]
[environment]
[noderef]
[parameters]
[[parameters]]
[[[parameter]]]
I praktiken kan avsnittet [cluster]
innehålla ett eller flera [[node]]
avsnitt, som kan innehålla flera [[[volume]]]
avsnitt. På samma sätt kan du i samma mall i [cluster]
avsnittet definiera ett eller flera [[nodearray]]
avsnitt, var och en med sin egen [[[configuration]]]
.
Kommentar
Ordningen på avsnitt på samma nivå är godtycklig.
Vilka är huvudavsnitten i en mall?
En mall består av följande huvudavsnitt:
- Kluster: Avsnittet
[cluster]
innehåller en definition av ett Azure CycleCloud-klusterobjekt. En mall måste innehålla minst ett[cluster]
avsnitt, som innehåller ett eller flera[[node]]
och[[nodearray]]
avsnitt som beskriver underordnade objekt i klustret. - Nod: Detta representerar en enda, plattformsetablerad virtuell dator.
- Nodearray: Detta representerar en eller flera skalningsuppsättningar för virtuella Azure-datorer.
Kommentar
Kluster består av noder som betjänar deras avsedda roller vid bearbetning av klustrade arbetsbelastningar. Från implementeringssynpunkt förlitar sig Azure CycleCloud på Azure Resource Manager för att etablera dem som antingen enskilda virtuella Azure-datorer eller som medlemmar i en VM-skalningsuppsättning. Den senare representerar en samling identiskt konfigurerade virtuella datorer, som till skillnad från virtuella Azure-datorer stöder horisontell autoskalning. Azure CycleCloud använder vm-skalningsuppsättningar för att implementera nodearrays. [[node]]
I själva verket beskriver avsnittet egenskaperna för de underliggande, plattformsetablerade virtuella datorerna, som kan vara en fristående virtuell Azure-dator eller tillhöra en skalningsuppsättning för virtuella Azure-datorer. I [[nodearray]]
avsnittet beskrivs en skalningsuppsättning för virtuella Azure-datorer.
Kommentar
En nodearray kan bestå av flera skalningsuppsättningar för virtuella Azure-datorer, där var och en av dem består av olika konfigurerade virtuella datorer. Alla noder i en nodearray utför dock samma roll i klustret, till exempel att tillhandahålla resurser till en enda kö i klusterschemaläggaren.
- Volume definierar en Azure-hanterad disk som ska kopplas till enskilda klusternoder eller noder som utgör en nodearray. Det är ett underordnat objekt för en nod eller ett nodearray-objekt.
- Nätverksgränssnittet definierar ett Azure-nätverksgränssnitt som ska kopplas till enskilda klusternoder eller noder som utgör en nodearray. Det är ett underordnat objekt för en nod eller ett nodearray-objekt.
- Konfiguration definierar konfigurerbara egenskaper för en nod eller nodearray. Det är ett underordnat objekt för en nod eller ett nodearray-objekt.
- Cluster-init definierar de Azure CycleCloud-projektspecifikationer som ska tillämpas på en klusternod. Ett projekt är en samling resurser som definierar nodkonfigurationer i form av projektspecifikationer. När en nod startar konfigureras den automatiskt genom att dessa specifikationer bearbetas. Cluster-init är ett underordnat objekt för en nod eller ett nodearray-objekt.
- Miljö definierar en Azure Resource Manager-distribution som etablerar eller ändrar Azure-resurser som ska användas av klustret. Det är ett valfritt objekt på den översta nivån.
- Noderef refererar till en nod i mallen för att uttrycka resursberoenden. Det är ett valfritt objekt på den översta nivån.
- Med parametrar kan du göra en mall portabel så att du kan använda den för distribution av flera kluster med matchande objekthierarki men olika konfigurationsinställningar. Det är ett valfritt objekt på den översta nivån, men du kan skapa en kapslad parameterhierarki. För varje parameter kan du definiera dess standardvärde. Med parametrar kan du också exponera konfigurerbara variabler i ett kluster via CycleCloud-webbgränssnittet.
Varje avsnitt innehåller flera nyckel/värde-par som innehåller konfigurationsinformation om motsvarande objekt, som representeras av avsnittsrubriken. Sådan information för en nodearray kan till exempel innehålla ImageName
nyckeln med värdet som anger den virtuella Azure-datoravbildningen som ska användas för noderna, eller Azure.MaxScalesetSize
nyckeln som anger den maximala tillåtna skalningsuppsättningsstorleken för virtuella datorer som värde. På samma sätt kan nod- eller nodearray-avsnitten innehålla ett eller flera [[[configuration]]]
avsnitt.
Hur etablerar jag ett kluster baserat på en mall?
När du har identifierat mallen som du tänker använda för att etablera ett Azure CycleCloud-kluster kan du använda någon av följande implementeringsmetoder:
- Använd Azure CycleCloud CLI för att importera mallen till ditt Azure CycleCloud-program och använd sedan programmets grafiska gränssnitt för att etablera klustret. Om du vill utlösa importen kör
cyclecloud import_template -f <template_file>
du kommandot (där<template_file>
platshållaren representerar namnet på filen som innehåller mallen). Om mallen innehåller flera klusterdefinitioner anger du namnet på det kluster som du vill importera genom att referera till det som värdet för parametern-c
. - Använd Azure CycleCloud CLI för att importera mallen till ditt Azure CycleCloud-program och etablera sedan klustret. Om du vill utlösa importen kör
cyclecloud import_template -t -f <template_file>
du kommandot (där<template_file>
platshållaren representerar namnet på filen som innehåller mallen). När importen har slutförts kör ducyclecloud create_cluster
kommandot . Om du till exempel vill skapa ett kluster med namnetlab-cluster
från en importerad mall med namnetlab-template
körcyclecloud create_cluster lab-template lab-cluster
du . - Använd Azure CycleCloud CLI för att etablera klustret utan att uttryckligen importera mallen. Kör kommandot för
cyclecloud import_cluster
att utlösa importen.
Oavsett vilken metod du väljer måste du ange värden för alla obligatoriska parametrar under klusteretablering. När du använder Azure CycleCloud CLI kan du ange dem genom att referera till en JSON-formaterad parameterfil.
Kommentar
Filen består av nyckel/värde-par, där nyckeln representerar parameternamnet. Om du vill granska dess format för ett befintligt kluster använder du cyclecloud export_parameters <cluster_name> > params.json
kommandot där <cluster_name>
platshållaren representerar namnet på det befintliga klustret.
Kommentar
Innan du distribuerar ett kluster baserat på en importerad mall måste du också ladda upp innehållet i motsvarande projekt till ett Azure CycleCloud-skåp. Om du vill utföra en uppladdning använder du cyclecloud project upload <locker_name>
Azure CycleCloud CLI-kommandot (där <locker_name>
platshållaren representerar namnet på skåpet). Kör Azure CycleCloud CLI-kommandot för cyclecloud locker list
att lista tillgängliga skåp. Namnet på skåpet refereras till i avsnittet [[[cluster-init]]]
.
Kommentar
Ett av stegen när du konfigurerar en Azure CycleCloud-installation är att skapa en blobcontainer i ett Azure Storage-konto. Den här containern fungerar som det skåp som CycleCloud-servern använder för att mellanlagra CycleCloud-projekt för klusternoder. Därefter konfigureras noder i Azure CycleCloud-hanterade kluster för att ladda ned CycleCloud-projekt från det här skåpet som en del av startprocessen.