Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Wanneer u een Azure Batch-pool maakt, kunt u de pool inrichten met knooppunten waarvoor automatische upgrade van het besturingssysteem is ingeschakeld. In dit artikel wordt uitgelegd hoe u een Batch-pool instelt met automatische upgrade van het besturingssysteem.
Waarom automatische upgrade van het besturingssysteem gebruiken?
Automatische upgrade van het besturingssysteem wordt gebruikt voor het implementeren van een strategie voor automatische upgrade van het besturingssysteem en het beheer binnen Azure Batch Pools. Hier volgen enkele redenen voor het gebruik van automatische upgrade van het besturingssysteem:
- Beveiliging. Automatische upgrade van het besturingssysteem zorgt voor tijdige patching van beveiligingsproblemen en beveiligingsproblemen binnen de installatiekopieën van het besturingssysteem om de beveiliging van rekenresources te verbeteren. Het helpt voorkomen dat potentiële beveiligingskwetsbaarheden een bedreiging vormen voor applicaties en gegevens.
- Geminimaliseerde onderbreking van beschikbaarheid. Automatische upgrade van het besturingssysteem wordt gebruikt om de beschikbaarheidsonderbreking van rekenknooppunten tijdens upgrades van het besturingssysteem te minimaliseren. Dit wordt bereikt door taakplanningsbewust uitstellen van upgrades en ondersteuning voor doorlopende upgrades, waardoor workloads minimale verstoring ondervinden.
- Flexibiliteit. Met automatische upgrade van het besturingssysteem kunt u uw strategie voor automatische besturingssysteemupgrade configureren, inclusief op percentage gebaseerde upgradecoördinatie en terugdraaiondersteuning. Dit betekent dat u uw upgradestrategie kunt aanpassen om te voldoen aan uw specifieke prestatie- en beschikbaarheidsvereisten.
- Control. Automatische upgrade van het besturingssysteem biedt u controle over de upgradestrategie van uw besturingssysteem om veilige, workloadbewuste upgrade-implementaties te garanderen. U kunt uw beleidsconfiguraties aanpassen aan de specifieke behoeften van uw organisatie.
Kortom, het gebruik van Automatische besturingssysteemupgrade helpt de beveiliging te verbeteren, beschikbaarheidsonderbrekingen te minimaliseren en zowel meer controle als flexibiliteit te bieden voor uw workloads.
Hoe werkt de automatische upgrade van het besturingssysteem?
Bij het upgraden van images volgen VM's in een Azure Batch-pool grotendeels dezelfde werkwijze als VirtualMachineScaleSets. Zie de pagina VirtualMachineScaleSet voor meer informatie over de gedetailleerde stappen die zijn betrokken bij het upgradeproces voor het automatisch besturingssysteem voor VirtualMachineScaleSets.
Als automaticOSUpgradePolicy.osRollingUpgradeDeferral echter is ingesteld op 'true' en er een upgrade beschikbaar is wanneer een batchknooppunt actief taken uitvoert, wordt de upgrade uitgesteld totdat alle taken op het knooppunt zijn voltooid.
Opmerking
Als voor een pool osRollingUpgradeDeferral is ingeschakeld, worden de knooppunten tijdens het upgradeproces weergegeven in de status upgradingos. Houd er rekening mee dat de status van de upgradeos alleen wordt weergegeven wanneer u de API-versie van 2024-02-01 of hoger gebruikt. Als u een oude API-versie gebruikt om GetTVM/ListTVM aan te roepen, heeft het knooppunt de status Opnieuw opstarten bij het upgraden.
Ondersteunde installatiekopieën van het besturingssysteem
Alleen bepaalde installatiekopieën van het besturingssysteemplatform worden momenteel ondersteund voor automatische upgrade. Voor een gedetailleerde lijst met afbeeldingen kunt u de pagina VirtualMachineScaleSet ophalen.
Requirements
- De versie-eigenschap van de image moet zijn ingesteld op latest.
- Voor Batch Management-API gebruikt u API-versie 2024-02-01 of hoger. Voor Batch Service-API gebruikt u API-versie 2024-02-01.19.0 of hoger.
- Zorg ervoor dat externe resources die zijn opgegeven in de pool beschikbaar en bijgewerkt zijn. Voorbeelden zijn een SAS-URI voor bootstrap-payload in de eigenschappen van VM-extensies, payload in een opslagaccount, verwijzingen naar geheimen in het model en meer.
- Als u de eigenschap virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates gebruikt, moet deze eigenschap zijn ingesteld op false in de pooldefinitie. Met de eigenschap enableAutomaticUpdates kunt u in-VM patchen waarbij 'Windows Update' patches van het besturingssysteem toepast zonder de besturingssysteemschijf te vervangen. Als automatische upgrades van installatiekopieën van het besturingssysteem zijn ingeschakeld, is een extra patchproces via Windows Update niet vereist.
Aanvullende vereisten voor aangepaste images
- Wanneer een nieuwe versie van de installatiekopieën wordt gepubliceerd en gerepliceerd naar de regio van die pool, worden de VM's bijgewerkt naar de nieuwste versie van de installatiekopieën van de Azure Compute Gallery. Als de nieuwe installatiekopie niet wordt gerepliceerd naar de regio waar de pool is geïmplementeerd, worden de VM-exemplaren niet geüpgraded naar de nieuwste versie. Met replicatie van regionale installatiekopieën kunt u de implementatie van de nieuwe installatiekopieën voor uw VM's beheren.
- De nieuwe versie van de installatiekopie mag niet worden uitgesloten van de nieuwste versie voor die galerie-installatiekopie. Afbeeldingsversies die zijn uitgesloten van de meest recente versie van de galeriekopie, worden niet uitgerold via automatische upgrade van besturingssysteemkopieën.
Automatische upgrade van besturingssysteem configureren
Als u automatische upgrades van het besturingssysteem binnen een pool wilt implementeren, is het essentieel dat u het veld UpgradePolicy configureert tijdens het maken van de pool. Als u automatische upgrades van installatiekopieën van het besturingssysteem wilt configureren, moet u ervoor zorgen dat de eigenschap automaticOSUpgradePolicy.enableAutomaticOSUpgrade is ingesteld op 'true' in de pooldefinitie.
Opmerking
Upgrade Policy mode en Automatic OS Upgrade Policy zijn afzonderlijke instellingen en beheren verschillende aspecten van de ingerichte schaalset door Azure Batch. De modus voor het upgradebeleid bepaalt wat er met bestaande instanties in de schaalset gebeurt. Automatische upgradebeleid voor het besturingssysteem enableAutomaticOSUpgrade is echter specifiek voor de installatiekopieën van het besturingssysteem en houdt wijzigingen bij die de uitgever van de installatiekopieën heeft aangebracht en bepaalt wat er gebeurt wanneer er een update van de installatiekopieën wordt uitgevoerd.
REST API
In het volgende voorbeeld wordt beschreven hoe u een pool maakt met automatische upgrade van het besturingssysteem via REST API:
PUT https://management.azure.com/subscriptions/<subscriptionid>/resourceGroups/<resourcegroupName>/providers/Microsoft.Batch/batchAccounts/<batchaccountname>/pools/<poolname>?api-version=2024-02-01
Aanvraaglichaam
{
"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#)
In het volgende codefragment ziet u een voorbeeld van het gebruik van de Azure. ResourceManager.Batch clientbibliotheek voor het maken van een pool met automatische upgrade van het besturingssysteem via C#-codes. Voor meer informatie over Azure.ResourceManager.Batch raadpleegt u de referentiedocumentatie.
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
Worden mijn taken onderbroken als ik Automatische upgrade van het besturingssysteem heb ingeschakeld?
Taken worden niet onderbroken wanneer automaticOSUpgradePolicy.osRollingUpgradeDeferral is ingesteld op 'true'. In dat geval wordt de upgrade uitgesteld totdat het knooppunt inactief wordt. Anders wordt het knooppunt geüpgraded wanneer het een nieuwe versie van het besturingssysteem ontvangt, ongeacht of het momenteel een taak uitvoert of niet. Daarom adviseren we het inschakelen van automaticOSUpgradePolicy.osRollingUpgradeDeferral.
Volgende stappen
- Meer informatie over het gebruik van een beheerde installatiekopie om een pool te maken.
- Meer informatie over het gebruik van de Azure Compute Gallery om een pool te maken.