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.
In dit artikel wordt stapsgewijs uitgelegd hoe u een ARM-sjabloon gebruikt om een Azure Compute Fleet te maken.
Een Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.
Vereisten
- Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
- Voordat u Compute Fleet gebruikt, voltooit u de functieregistratie en configureert u op rollen gebaseerd toegangsbeheer (RBAC).
Functieregistratie
Registreer de Azure Compute Fleet-resourceprovider bij uw abonnement met behulp van PowerShell of Azure Portal. Het kan tot 30 minuten duren voordat de registratie als succesvol geregistreerd wordt weergegeven.
Register-AzResourceProvider -ProviderNamespace Microsoft.AzureFleet
Op rollen gebaseerde toegangsmachtigingen
Wijs de juiste RBAC-machtigingen toe om Azure Compute Fleet te gebruiken.
- Navigeer in Azure Portal naar uw abonnementen.
- Selecteer het abonnement waarvoor u RBAC-machtigingen wilt aanpassen.
- Selecteer Toegangsbeheer (IAM).
- Selecteer Toevoegen en vervolgens Roltoewijzing toevoegen.
- Zoek naar Inzender voor virtuele machines en markeer deze. Selecteer Volgende.
- Klik op + Leden selecteren.
- Zoek naar de Azure Fleet Resource Provider-rol.
- Selecteer de Azure Fleet-resourceprovider en selecteer Beoordelen en toewijzen.
- Herhaal de vorige stappen voor de rol Netwerkbijdrager en de rol Managed Identity Operator .
Als u afbeeldingen gebruikt die zijn opgeslagen in de rekengalerie bij het implementeren van uw Compute Fleet, herhaalt u ook de vorige stappen voor de rol Beheerder delen in de rekengalerie.
Zie Azure-rollen toewijzen met behulp van Azure Portal voor meer informatie over het toewijzen van rollen.
ARM-sjabloon
Een Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.
Met ARM-sjablonen kunt u groepen gerelateerde resources implementeren. In één sjabloon kunt u de virtuele-machineschaalset maken, toepassingen installeren en regels voor automatisch schalen configureren. Met het gebruik van variabelen en parameters kan deze sjabloon opnieuw worden gebruikt om bestaande bij te werken of om extra schaalsets te maken. U kunt sjablonen implementeren via de Azure-portal, Azure CLI of Azure PowerShell of via CI/CD-pijplijnen (Continuous Integration/Continuous Delivery).
De sjabloon controleren
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"fleetName": {
"type": "string",
"metadata": {
"description": "String used as a base for naming resources. Must be 3-61 characters in length and globally unique across Azure. A hash is prepended to this string for some resources, and resource-specific information is appended."
}
},
"adminUsername": {
"type": "string",
"defaultValue": "testusername",
"metadata": {
"description": "Admin username on all VMs."
}
},
"adminPassword": {
"type": "string",
"metadata": {
"description": "Admin password on all VMs."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {
"vnName": "[format('{0}-vnet', parameters('fleetName'))]",
"lbName": "[format('{0}-lb', parameters('fleetName'))]",
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2019-DataCenter-GS",
"version": "latest"
}
},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2022-07-01",
"name": "[variables('vnName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"10.0.0.0/16"
]
},
"subnets": [
{
"name": "default",
"properties": {
"addressPrefix": "10.0.0.0/24"
}
}
]
}
},
{
"type": "Microsoft.Network/loadBalancers",
"apiVersion": "2022-07-01",
"name": "[variables('lbName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard"
},
"properties": {
"frontendIPConfigurations": [
{
"name": "[variables('lbName')]",
"properties": {
"privateIPAddress": "10.0.0.4",
"privateIPAllocationMethod": "Dynamic",
"subnet": {
"id": "[reference(resourceId('Microsoft.Network/virtualNetworks', variables('vnName'))).subnets[0].id]"
}
}
}
],
"backendAddressPools": [
{
"name": "[variables('lbName')]"
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnName'))]"
]
},
{
"type": "Microsoft.AzureFleet/fleets",
"apiVersion": "2024-05-01-Preview",
"name": "[toLower(parameters('fleetName'))]",
"location": "[parameters('location')]",
"properties": {
"vmSizesProfile": [
{
"name": "Standard_F2s_v2"
},
{
"name": "Standard_DS1_v2"
},
{
"name": "Standard_DS2_v2"
}
],
"spotPriorityProfile": {
"capacity": 10,
"evictionPolicy": "Delete",
"allocationStrategy": "CapacityOptimized",
"maintain": false
},
"regularPriorityProfile": {
"capacity": 50,
"minCapacity": 30,
"allocationStrategy": "LowestPrice"
},
"computeProfile": {
"platformFaultDomainCount": 1,
"computeApiVersion": "2024-03-01",
"baseVirtualMachineProfile": {
"storageProfile": {
"osDisk": {
"osType": "Windows",
"createOption": "fromImage",
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "Standard_LRS"
}
},
"imageReference": "[variables('imageReference')]"
},
"osProfile": {
"computerNamePrefix": "[parameters('fleetName')]",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]"
},
"networkProfile": {
"networkApiVersion": "2022-07-01",
"networkInterfaceConfigurations": [
{
"name": "[variables('vnName')]",
"properties": {
"primary": true,
"enableIPForwarding": true,
"enableAcceleratedNetworking": false,
"ipConfigurations": [
{
"name": "[variables('vnName')]",
"properties": {
"subnet": {
"id": "[reference(resourceId('Microsoft.Network/virtualNetworks', variables('vnName'))).subnets[0].id]"
},
"primary": true,
"applicationGatewayBackendAddressPools": [],
"loadBalancerBackendAddressPools": [
{
"id": "[format('{0}/backendAddressPools/{1}', resourceId('Microsoft.Network/loadBalancers', variables('lbName')), variables('lbName'))]"
}
]
}
}
]
}
}
]
}
}
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('vnName'))]",
"[resourceId('Microsoft.Network/loadBalancers', variables('lbName'))]"
]
}
]
}
Deze resources worden in de sjabloon gedefinieerd:
Maak een vloot aan in Launch-modus (Preview)
Om een vloot te maken in Launch mode (Preview), stel je mode in op Launch in de vloot-properties en gebruik je API-versie 2026-04-01-preview. In Launch-modus levert de vloot de VM's en geeft vervolgens de controle over; het fleet-object verwijdert zichzelf enkele uren later terwijl de VM's blijven bestaan.
Het volgende fragment toont de toevoegingen aan de bron Microsoft.AzureFleet/fleets in de Launch-modus. De vmNamePrefix eigenschap geeft de geprovisioneerde VM's orchestratorvriendelijke namen en vereist de 2026-04-01-preview API-versie.
{
"type": "Microsoft.AzureFleet/fleets",
"apiVersion": "2026-04-01-preview",
"name": "[toLower(parameters('fleetName'))]",
"location": "[parameters('location')]",
"zones": [ "1", "2", "3" ],
"properties": {
"mode": "Launch",
"vmNamePrefix": "myapp",
"vmSizesProfile": [
{ "name": "Standard_D2s_v3" },
{ "name": "Standard_D4s_v3" },
{ "name": "Standard_E2s_v3" }
],
"regularPriorityProfile": {
"capacity": 50,
"allocationStrategy": "LowestPrice"
},
"spotPriorityProfile": {
"capacity": 50,
"allocationStrategy": "CapacityOptimized"
},
"computeProfile": {
"computeApiVersion": "2024-03-01",
"baseVirtualMachineProfile": {
"storageProfile": { "...": "..." },
"osProfile": { "...": "..." },
"networkProfile": { "...": "..." }
}
}
}
}
In de Launch-modus kun je de spotPriorityProfile.maintain voorkeur niet instellen - die geldt alleen voor de Managed mode. Omdat provisioning asynchroon is, gebruik je de List VMs API om de VM-resource-ID's op te halen en de provisioningstatus te monitoren nadat de deployment is ingediend.
Important
De launchmodus voor Azure Compute Fleet is momenteel in preview. Voor meer informatie, zie Launch mode voor Azure Compute Fleet (Preview).
Resources opschonen
Wanneer u deze niet meer nodig hebt, kunt u az group delete gebruiken om de resourcegroep, schaalset en alle gerelateerde resources als volgt te verwijderen. De parameter --no-wait retourneert het besturingselement naar de prompt zonder te wachten totdat de bewerking is voltooid. De --yes parameter bevestigt dat u de resources wilt verwijderen zonder een andere prompt om dit te doen.
az group delete --name myResourceGroup --yes --no-wait