Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du skapar en Azure Batch pool kan du etablera poolen med noder som har automatisk operativsystemuppgradering aktiverad. Den här artikeln beskriver hur du konfigurerar en Batch-pool med automatisk operativsystemuppgradering.
Varför ska jag använda automatisk operativsystemuppgradering?
Automatisk operativsystemuppgradering används för att implementera en automatisk uppgraderingsstrategi för operativsystem och kontroll i Azure Batch pooler. Här följer några orsaker till att du använder automatisk os-uppgradering:
- Säkerhet. Automatisk operativsystemuppgradering säkerställer snabb korrigering av sårbarheter och säkerhetsproblem i operativsystemavbildningen, för att förbättra säkerheten för beräkningsresurser. Det hjälper till att förhindra att potentiella säkerhetsrisker utgör ett hot mot program och data.
- Minimerade tillgänglighetsstörningar. Automatisk os-uppgradering används för att minimera tillgänglighetsavbrott för beräkningsnoder under OS-uppgraderingar. Detta uppnås genom uppgraderingsuppskov med hänsyn till uppgiftsschemaläggning och stöd för rullande uppgraderingar, vilket säkerställer att arbetslaster påverkas minimalt.
- Flexibilitet. Med automatisk operativsystemuppgradering kan du konfigurera din strategi för automatisk uppgradering av operativsystemet, inklusive procentbaserad uppgraderingssamordning och återställningsstöd. Det innebär att du kan anpassa din uppgraderingsstrategi så att den uppfyller dina specifika prestanda- och tillgänglighetskrav.
- Kontroll. Automatisk uppgradering av operativsystem ger dig kontroll över uppgraderingsstrategin för operativsystemet för att säkerställa säkra, arbetsbelastningsmedvetna uppgraderingsdistributioner. Du kan skräddarsy dina principkonfigurationer för att uppfylla organisationens specifika behov.
Sammanfattningsvis bidrar användningen av automatisk os-uppgradering till att förbättra säkerheten, minimera tillgänglighetsstörningar och ge både större kontroll och flexibilitet för dina arbetsbelastningar.
Hur fungerar automatisk operativsystemuppgradering?
När du uppgraderar avbildningar följer virtuella datorer i Azure Batch Pool ungefär samma arbetsflöde som VirtualMachineScaleSets. Mer information om de detaljerade stegen i processen för automatisk uppgradering av operativsystem för VirtualMachineScaleSets finns på sidan VirtualMachineScaleSet.
Men om automaticOSUpgradePolicy.osRollingUpgradeDeferral är inställt på "true" och en uppgradering blir tillgänglig när en batchnod aktivt kör uppgifter, fördröjs uppgraderingen tills alla aktiviteter har slutförts på noden.
Note
Om en pool har aktiverat osRollingUpgradeDeferral visas noderna i tillståndet upgradingos under uppgraderingen. Observera att uppgraderingstillståndet endast visas när du använder API-versionen 2024-02-01 eller senare. Om du använder en gammal API-version för att anropa GetTVM/ListTVM är noden i ett omstartstillstånd när du uppgraderar.
Operativsystembilder som stöds
Endast vissa operativsystemplattformsavbildningar stöds för närvarande för automatisk uppgradering. För en detaljerad lista över avbildningar kan du hämta den från sidan VirtualMachineScaleSet.
Krav
- Versionsegenskapen för avbildningen måste vara inställd på senaste.
- För Batch Management API använder du API version 2024-02-01 eller senare. För Batch Service API använder du API-version 2024-02-01.19.0 eller senare.
- Se till att externa resurser som anges i poolen är tillgängliga och uppdaterade. Exempel är SAS-URI för bootstrapping-nyttolast i egenskaper för VM-tillägg, nyttolast i lagringskonto, referens till hemligheter i modellen med mera.
- Om du använder egenskapen virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates måste den här egenskapen anges till "false" i pooldefinitionen. Egenskapen enableAutomaticUpdates möjliggör in-VM korrigering där "Windows Update" tillämpar operativsystemkorrigeringar utan att ersätta OS-disken. När automatiska os-avbildningsuppgraderingar är aktiverade krävs ingen extra korrigeringsprocess via Windows Update.
Ytterligare krav för anpassade avbildningar
- När en ny version av avbildningen publiceras och replikeras till poolens region uppgraderas de virtuella datorerna till den senaste versionen av avbildningen Azure Compute Gallery. Om den nya avbildningen inte replikeras till den region där poolen distribueras uppgraderas inte de virtuella datorinstanserna till den senaste versionen. Med regional bildreplikering kan du styra distributionen av den nya avbildningen för dina virtuella datorer.
- Den nya avbildningsversionen bör inte undantas från den senaste versionen för den galleribilden. Avbildningsversioner som undantas från galleriavbildningens senaste version distribueras inte via automatisk operativsystemavbildningsuppgradering.
Konfigurera automatisk operativsystemuppgradering
Om du tänker implementera automatiska OS-uppgraderingar i en pool är det viktigt att konfigurera fältet UpgradePolicy när poolen skapas. Om du vill konfigurera automatiska os-avbildningsuppgraderingar kontrollerar du att egenskapen automaticOSUpgradePolicy.enableAutomaticOSUpgrade är inställd på "true" i pooldefinitionen.
Note
Upgrade Policy mode och Automatic OS Upgrade Policy är separata inställningar och styr olika delar av den skaluppsättning som etableras av Azure Batch. Läget för uppgraderingsprincip avgör vad som händer med befintliga instanser i skalningsuppsättningen. Principen för automatisk OS-uppgradering, enableAutomaticOSUpgrade, är dock specifik för OS-avbildningen, spårar ändringar som avbildningens utgivare har gjort och avgör vad som händer när avbildningen uppdateras.
REST API
I följande exempel beskrivs hur du skapar en pool med automatisk uppgradering av operativsystemet via REST API:
PUT https://management.azure.com/subscriptions/<subscriptionid>/resourceGroups/<resourcegroupName>/providers/Microsoft.Batch/batchAccounts/<batchaccountname>/pools/<poolname>?api-version=2024-02-01
Begärandekropp
{
"name": "test1",
"type": "Microsoft.Batch/batchAccounts/pools",
"parameters": {
"properties": {
"vmSize": "Standard_d4s_v3",
"deploymentConfiguration": {
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2019-datacenter-smalldisk",
"version": "latest"
},
"nodePlacementConfiguration": {
"policy": "Zonal"
},
"nodeAgentSKUId": "batch.node.windows amd64",
"windowsConfiguration": {
"enableAutomaticUpdates": false
}
}
},
"scaleSettings": {
"fixedScale": {
"targetDedicatedNodes": 2,
"targetLowPriorityNodes": 0
}
},
"upgradePolicy": {
"mode": "Automatic",
"automaticOSUpgradePolicy": {
"disableAutomaticRollback": true,
"enableAutomaticOSUpgrade": true,
"useRollingUpgradePolicy": true,
"osRollingUpgradeDeferral": true
},
"rollingUpgradePolicy": {
"enableCrossZoneUpgrade": true,
"maxBatchInstancePercent": 20,
"maxUnhealthyInstancePercent": 20,
"maxUnhealthyUpgradedInstancePercent": 20,
"pauseTimeBetweenBatches": "PT0S",
"prioritizeUnhealthyInstances": false,
"rollbackFailedInstancesOnPolicyBreach": false
}
}
}
}
}
SDK (C#)
Följande kodfragment visar ett exempel på hur du använder Azure. ResourceManager.Batch klientbibliotek för att skapa en pool med automatisk uppgradering av operativsystemet via C#-koder. Mer information om Azure.ResourceManager.Batch finns i referensdokumentationen.
public async Task CreateUpgradePolicyPool()
{
// Authenticate
var subscriptionId = Environment.GetEnvironmentVariable("SUBSCRIPTION_ID");
DefaultAzureCredential credential = new DefaultAzureCredential();
ArmClient client = new ArmClient(credential, subscriptionId);
// Get an existing Batch account
string resourceGroupName = "testrg";
string accountName = "testaccount";
ResourceIdentifier batchAccountResourceId = BatchAccountResource.CreateResourceIdentifier(subscriptionId, resourceGroupName, accountName);
BatchAccountResource batchAccount = client.GetBatchAccountResource(batchAccountResourceId);
// get the collection of this BatchAccountPoolResource
BatchAccountPoolCollection collection = batchAccount.GetBatchAccountPools();
// Define the pool
string poolName = "testpool";
BatchAccountPoolData data = new BatchAccountPoolData()
{
VmSize = "Standard_d4s_v3",
DeploymentConfiguration = new BatchDeploymentConfiguration()
{
VmConfiguration = new BatchVmConfiguration(new BatchImageReference()
{
Publisher = "MicrosoftWindowsServer",
Offer = "WindowsServer",
Sku = "2019-datacenter-smalldisk",
Version = "latest",
},
nodeAgentSkuId: "batch.node.windows amd64")
{
NodePlacementPolicy = BatchNodePlacementPolicyType.Zonal,
IsAutomaticUpdateEnabled = false
},
},
ScaleSettings = new BatchAccountPoolScaleSettings()
{
FixedScale = new BatchAccountFixedScaleSettings()
{
TargetDedicatedNodes = 2,
TargetLowPriorityNodes = 0,
},
},
UpgradePolicy = new UpgradePolicy()
{
Mode = UpgradeMode.Automatic,
AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy()
{
DisableAutomaticRollback = true,
EnableAutomaticOSUpgrade = true,
UseRollingUpgradePolicy = true,
OSRollingUpgradeDeferral = true
},
RollingUpgradePolicy = new RollingUpgradePolicy()
{
EnableCrossZoneUpgrade = true,
MaxBatchInstancePercent = 20,
MaxUnhealthyInstancePercent = 20,
MaxUnhealthyUpgradedInstancePercent = 20,
PauseTimeBetweenBatches = "PT0S",
PrioritizeUnhealthyInstances = false,
RollbackFailedInstancesOnPolicyBreach = false,
}
}
};
ArmOperation<BatchAccountPoolResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, poolName, data);
BatchAccountPoolResource result = lro.Value;
// the variable result is a resource, you could call other operations on this instance as well
// but just for demo, we get its data from this resource instance
BatchAccountPoolData resourceData = result.Data;
// for demo we just print out the id
Console.WriteLine($"Succeeded on id: {resourceData.Id}");
}
FAQs
Kommer mina uppgifter att avbrytas om jag har aktiverat automatisk uppgradering av operativsystemet?
Aktiviteter störs inte när automaticOSUpgradePolicy.osRollingUpgradeDeferral är inställt på "true". I så fall skjuts uppgraderingen upp tills noden blir inaktiv. Annars uppgraderas noden när den tar emot en ny os-version, oavsett om den för närvarande kör en uppgift eller inte. Därför rekommenderar vi starkt att du aktiverar automatiskOSUpgradePolicy.osRollingUpgradeDeferral.
Nästa steg
- Lär dig hur du använder en hanterad avbildning för att skapa en pool.
- Lär dig hur du använder Azure Compute Gallery för att skapa en pool.