Veelgestelde vragen over schaalsets voor virtuele Azure-machines

Krijg antwoorden op veelgestelde vragen over virtuele-machineschaalsets in Azure.

Veelgestelde vragen over schaalsets

Hoeveel virtuele machines kan een schaalset bevatten?

Een schaalset kan 0 tot 1000 VM's hebben op basis van platformafbeeldingen, of 0 tot 600 VM's op basis van aangepaste afbeeldingen.

Worden gegevensschijven binnen schaalsets ondersteund?

Ja. Een schaalset kan een configuratie voor gekoppelde gegevensschijven definiëren die op alle VM's in de set wordt toegepast. Zie Schaalsets en gekoppelde gegevensschijven in Azure voor meer informatie. Andere opties voor het opslaan van gegevens zijn:

  • Azure-bestanden (gedeelde SMB-stations)
  • Gedeelde Azure-schijven
  • Station van het besturingssysteem
  • Tijdelijk station (lokaal, niet ondersteund met Azure Storage)
  • Azure-gegevensservice (bijvoorbeeld Azure-tabellen, Azure-blobs)
  • Externe gegevensservice (bijvoorbeeld externe database)

Welke Azure-regio's ondersteunen schaalsets?

Alle regio's ondersteunen schaalsets.

Hoe maak ik een schaalset met behulp van een aangepaste installatiekopie?

Maak en leg een VM-afbeelding vast en gebruik deze vervolgens als de bron voor uw schaalset. Voor een zelfstudie over het maken en gebruiken van een aangepaste VM-afbeelding kunt u de Azure CLI of Azure PowerShell

Als ik de capaciteit van mijn schaalset verlaag van 20 naar 15, welke virtuele machines worden er dan verwijderd?

Standaard worden virtuele machines gelijkmatig verwijderd uit de schaalset in beschikbaarheidszones (als de schaalset is geïmplementeerd in zonelijke configuratie) en foutdomeinen om de beschikbaarheid te maximaliseren. VM's met de hoogste id's worden het eerst verwijderd.

U kunt de volgorde van het verwijderen van virtuele machines wijzigen door een inschaalbeleid op te geven voor de schaalset.

Wat gebeurt er als ik de capaciteit verhoog van 15 naar 18?

Als u de capaciteit verhoogt naar 18, worden er 3 nieuwe virtuele machines gemaakt. De id van elk VM-exemplaar wordt oplopend gegenereerd vanaf de vorige hoogste waarde (bijvoorbeeld 20, 21, 22). VM's worden verdeeld over foutdomeinen.

Kan ik een uitvoeringsvolgorde toepassen wanneer ik meerdere extensies in een schaalset gebruik?

Maken schaalsets gebruik van beschikbaarheidssets van Azure?

Een regionale (niet-zonale) schaalset maakt gebruik van plaatsingsgroepen , die fungeren als een impliciete beschikbaarheidsset met vijf foutdomeinen en vijf updatedomeinen. Schaalsets van meer dan 100 VM's bespannen meerdere plaatsingsgroepen. Zie voor meer informatie over de plaatsing van groepen Werken met grote schaalsets voor virtuele machines. Een beschikbaarheidsset met virtuele machines kan bestaan in hetzelfde virtuele netwerk als een schaalset met virtuele machines. Een veelvoorkomende configuratie is om beheerknooppunt-VM's (waarvoor vaak een unieke configuratie is vereist) in een beschikbaarheidsset te zetten en gegevensknooppunten in de schaalset te zetten.

Werken schaalsets met Azure-beschikbaarheidszones?

Ja. Zie het document met de schaalsetzone voor meer informatie.

Automatisch schalen

Wat zijn best practices voor automatisch schalen in Azure?

Zie Best practices for autoscaling virtual machines (Best practices voor automatisch schalenvan virtuele machines) voor best practices voor automatisch schalen.

Waar vind ik namen van metrische gegevens voor automatisch schalen die gebruik maken van hostgebaseerde metrische gegevens?

Zie Ondersteunde metrische gegevens met Azure Monitor voor metrische gegevens voor automatisch schalen die gebruik maken van hostgebaseerde metrische Azure Monitor.

Zijn er voorbeelden van automatisch schalen op basis van een Azure Service Bus onderwerp en wachtrijlengte?

Ja. Zie algemene metrische gegevens over automatisch schalen voor Service Bus voorbeelden van automatisch schalen op basis van een Azure Service Bus Azure Monitor en wachtrijlengte.

Gebruik voor Service Bus wachtrij de volgende JSON:

"metricName": "MessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/s1/resourceGroups/rg1/providers/Microsoft.ServiceBus/namespaces/mySB/queues/myqueue"

Gebruik de volgende JSON voor een opslagwachtrij:

"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/s1/resourceGroups/rg1/providers/Microsoft.ClassicStorage/storageAccounts/mystorage/services/queue/queues/mystoragequeue"

Vervang voorbeeldwaarden door uw resource Uniform Resource Identifiers (URI's).

Moet ik automatisch schalen met behulp van hostgebaseerde metrische gegevens of een diagnostische extensie?

U kunt een instelling voor automatisch schalen maken op een VM om metrische gegevens op hostniveau of metrische gegevens op basis van het gast-besturingssysteem te gebruiken.

Zie Algemene metrische gegevens voor Azure Monitor een lijst met ondersteunde metrische gegevens.

Zie Geavanceerde configuratie voor automatisch schalen met behulp van Resource Manager-sjablonen voor virtuele-machineschaalsets voor een volledig voorbeeld van virtuele-machineschaalsets.

In het voorbeeld worden de metrische gegevens voor cpu op hostniveau en metrische gegevens voor het aantal berichten gebruikt.

Hoe kan ik waarschuwingsregels instellen voor een virtuele-machineschaalset?

U kunt waarschuwingen maken voor metrische gegevens voor virtuele-machineschaalsets via PowerShell of Azure CLI. Zie powershell Azure Monitor quickstartvoorbeelden en voorbeelden Azure Monitor platformoverschrijdende CLI voor meer informatie.

De TargetResourceId van de virtuele-machineschaalset ziet er als volgende uit:

/subscriptions/yoursubscriptionid/resourceGroups/yourresourcegroup/providers/Microsoft.Compute/virtualMachineScaleSets/yourvmssname

U kunt een prestatiemeter voor VM's kiezen als metrische gegevens om een waarschuwing voor in te stellen. Zie Metrische gegevens van gast besturingssysteem voor Resource Manager-gebaseerde Windows-VM's en Metrische gegevens van gast-besturingssysteem voor Linux-VM's in het artikel Azure Monitor autoscaling common metrics (Algemene metrische gegevens over automatisch schalen).

Hoe kan ik automatisch schalen instellen op een virtuele-machineschaalset met behulp van PowerShell?

Zie Een virtuele-machineschaalset automatisch schalen als u automatisch schalen wilt instellen voor een virtuele-machineschaalsetmet behulp van PowerShell. U kunt automatische schaal aanpassen ook configureren met de Azure CLI en Azure-sjablonen

Als ik een VM heb gestopt (de toewijzing ervan is hersteld), is die VM dan gestart als onderdeel van een bewerking voor automatisch schalen?

Nee. Als voor regels voor automatisch schalen extra VM-exemplaren zijn vereist als onderdeel van een schaalset, wordt er een nieuw VM-exemplaar gemaakt. VM-exemplaren die zijn gestopt (toewijzing wordt niet toegewezen) worden niet gestart als onderdeel van een gebeurtenis voor automatisch schalen. Deze gestopte (toewijzingen van) VM's kunnen echter worden verwijderd als onderdeel van een gebeurtenis voor automatisch schalen die het aantal exemplaren inschaalt, op dezelfde manier als een VM-exemplaar kan worden verwijderd op basis van de volgorde van de VM-exemplaar-id.

Certificaten

Hoe kan ik een certificaat veilig verzenden naar de VM?

Als u een certificaat veilig naar de VM wilt verzenden, kunt u een klantcertificaat rechtstreeks vanuit de sleutelkluis van de klant installeren in een Windows-certificaatopslag.

Gebruik de volgende JSON:

"secrets": [
    {
        "sourceVault": {
            "id": "/subscriptions/{subscriptionid}/resourceGroups/myrg1/providers/Microsoft.KeyVault/vaults/mykeyvault1"
        },
        "vaultCertificates": [
            {
                "certificateUrl": "https://mykeyvault1.vault.azure.net/secrets/{secretname}/{secret-version}",
                "certificateStore": "certificateStoreName"
            }
        ]
    }
]

De code ondersteunt Windows linux.

Zie Een virtuele-machineschaalset maken of bijwerken voor meer informatie.

Hoe kan ik zelf-ondertekende certificaten gebruiken die zijn ingericht voor Azure Service Fabric Clusters?

Voor het meest recente voorbeeld gebruikt u de volgende Azure CLI-instructie in Azure Shell. Lees de voorbeelddocumentatie voor de Service Fabrics CLI-module die wordt afgedrukt naar stdout:

az sf cluster create -h

Zelf-ondertekende certificaten kunnen niet worden gebruikt voor gedistribueerde vertrouwensrelatie die wordt geleverd door een certificeringsinstantie en mogen niet worden gebruikt voor een Service Fabric-cluster dat is bedoeld voor het hosten van bedrijfsproductieoplossingen; Voor aanvullende Service Fabric-beveiligingsadviezen bekijkt u Best practices voor Azure Service Fabric security en Service Fabric scenario's voor clusterbeveiliging.

Kan ik een SSH-sleutelpaar opgeven dat moet worden gebruikt voor SSH-verificatie met een virtuele-machineschaalset in Linux op basis van Resource Manager sjabloon?

Ja. De REST API voor osProfile is vergelijkbaar met de standaard-VM-REST API.

Neem osProfile op in uw sjabloon:

"osProfile": {
    "computerName": "[variables('vmName')]",
    "adminUsername": "[parameters('adminUserName')]",
    "linuxConfiguration": {
        "disablePasswordAuthentication": "true",
        "ssh": {
            "publicKeys": [
                {
                    "path": "[variables('sshKeyPath')]",
                    "keyData": "[parameters('sshKeyData')]"
                }
            ]
        }
    }
}

Dit JSON-blok wordt gebruikt in deze Azure-quickstart-sjabloon.

Zie Een virtuele-machineschaalset maken of bijwerken voor meer informatie.

Hoe kan ik afgeschafte certificaten verwijderen?

Als u afgeschafte certificaten wilt verwijderen, verwijdert u het oude certificaat uit de lijst met kluiscertificaten. Laat alle certificaten die u op uw computer wilt blijven in de lijst staan. Hiermee wordt het certificaat niet van al uw VM's verwijderd. Ook wordt het certificaat niet aan nieuwe VM's die zijn gemaakt in de virtuele-machineschaalset, ook niet aan de nieuwe VM's.

Als u het certificaat van bestaande VM's wilt verwijderen, gebruikt u een aangepaste scriptextensie om de certificaten handmatig te verwijderen uit uw certificaatopslag.

Hoe kan ik tijdens het inrichten een bestaande openbare SSH-sleutel in de SSH-laag van de virtuele-machineschaalset injecteren?

Als u de VM's alleen een openbare SSH-sleutel geeft, hoeft u de openbare sleutels niet in een Key Vault. Openbare sleutels zijn niet geheim.

U kunt openbare SSH-sleutels als tekst zonder tekst verstrekken wanneer u een Linux-VM maakt:

"linuxConfiguration": {
    "ssh": {
        "publicKeys": [
            {
                "path": "path",
                "keyData": "publickey"
            }
        ]
    }
}
linuxConfiguration element name Vereist Type Beschrijving
Ssh Nee Verzameling Hiermee geeft u de configuratie van de SSH-sleutel op voor een Linux-besturingssysteem
leertraject Ja Tekenreeks Hiermee geeft u het Pad naar het Linux-bestand op waar de SSH-sleutels of het certificaat zich moeten bevinden
keyData Ja Tekenreeks Hiermee geeft u een openbare SSH-sleutel met base64-codering op

Zie de sjabloon vm-sshkey GitHub quickstart voor een voorbeeld.

Wanneer ik voer `Update-AzVmss` uit nadat ik meer dan één certificaat uit dezelfde sleutelkluis heb toegevoegd, wordt het volgende bericht weergegeven:

Update-AzVmss: Lijstgeheim bevat herhaalde exemplaren van /subscriptions/ <my-subscription-id> /resourceGroups/internal-rg-dev/providers/Microsoft.KeyVault/vaults/internal-keyvault-dev, wat niet is toegestaan.

Dit kan gebeuren als u dezelfde kluis opnieuw probeert toe te voegen in plaats van een nieuw kluiscertificaat te gebruiken voor de bestaande bronkluis. De Add-AzVmssSecret opdracht werkt niet goed als u extra geheimen toevoegt.

Als u meer geheimen uit dezelfde sleutelkluis wilt toevoegen, moet u de lijst $vmss.properties.osProfile.secrets[0].vaultCertificates bijwerken.

Zie Een virtuele-machineset maken of bijwerken voor de verwachte invoerstructuur.

Zoek het geheim in het virtuele-machineschaalsetobject in de sleutelkluis. Voeg vervolgens uw certificaatverwijzing (de URL en de naam van het geheimopslag) toe aan de lijst die is gekoppeld aan de kluis.

Notitie

Op dit moment kunt u geen certificaten van VM's verwijderen met behulp van de API voor virtuele-machineschaalsets.

Nieuwe VM's hebben niet het oude certificaat. VM's met het certificaat en die al zijn geïmplementeerd, hebben echter het oude certificaat.

Kan ik certificaten pushen naar de virtuele-machineschaalset zonder het wachtwoord op te geven, wanneer het certificaat zich in het geheime opslagopslag?

U hoeft wachtwoorden niet in scripts in code te coden. U kunt wachtwoorden dynamisch ophalen met de machtigingen die u gebruikt om het implementatiescript uit te voeren. Als u een script hebt dat een certificaat verplaatst uit de sleutelkluis van het geheime archief, wordt met de opdracht secret store ook het wachtwoord van het get certificate PFX-bestand uitgevoerd.

Hoe werkt de eigenschap Geheimen van virtualMachineProfile.osProfile voor een virtuele-machineschaalset? Waarom heb ik de sourceVault-waarde nodig wanneer ik de absolute URI voor een certificaat moet opgeven met behulp van de eigenschap certificateUrl?

Een Windows WinRM-certificaatverwijzing (Remote Management) moet aanwezig zijn in de eigenschap Geheimen van het besturingssysteemprofiel.

Het doel van het aangeven van de bronkluis is het afdwingen van toegangsbeheerlijstbeleidsregels die bestaan in het Azure Cloud Service-model van een gebruiker. Als de bronkluis niet is opgegeven, kunnen gebruikers die geen machtigingen hebben om geheimen te implementeren of toegang te krijgen tot een sleutelkluis, dit doen via een Compute Resource Provider (CRP). ACL's bestaan zelfs voor resources die niet bestaan.

Als u een onjuiste bronkluis-id op geeft, maar een geldige sleutelkluis-URL, wordt er een fout gerapporteerd wanneer u de bewerking peilt.

Als ik geheimen toevoeg aan een bestaande virtuele-machineschaalset, worden de geheimen dan in bestaande VM's geïnjecteerd of alleen in nieuwe?

Certificaten worden toegevoegd aan al uw VM's, zelfs al bestaande. Als de eigenschap upgradePolicy van uw virtuele-machineschaalset is ingesteld op handmatig , wordt het certificaat toegevoegd aan de virtuele machine wanneer u een handmatige update op de virtuele machine uit te voeren.

Waar kan ik certificaten voor linux-VM's plaatsen?

Zie Certificaten implementeren op virtuele VM's vanuit een door de klant beheerde sleutelkluis voor meer informatie over het implementeren van certificaten voor virtuele Linux-VM's.

Hoe kan ik een nieuw kluiscertificaat toevoegen aan een nieuw certificaatobject?

Zie het volgende PowerShell-voorbeeld om een kluiscertificaat toe te voegen aan een bestaand geheim. Gebruik slechts één geheim object.

$newVaultCertificate = New-AzVmssVaultCertificateConfig -CertificateStore MY -CertificateUrl https://sansunallapps1.vault.azure.net:443/secrets/dg-private-enc/55fa0332edc44a84ad655298905f1809

$vmss.VirtualMachineProfile.OsProfile.Secrets[0].VaultCertificates.Add($newVaultCertificate)

Update-AzVmss -VirtualMachineScaleSet $vmss -ResourceGroup $rg -Name $vmssName

Wat gebeurt er met certificaten als u een VM opnieuw maakt?

Als u een VM opnieuw wilt maken, worden certificaten verwijderd. Bij het opnieuw maken wordt de hele besturingssysteemschijf verwijderd.

Wat gebeurt er als u een certificaat uit de sleutelkluis verwijdert?

Als het geheim uit de sleutelkluis wordt verwijderd en u vervolgens voor al uw VM's wordt uitgevoerd en deze vervolgens opnieuw start, tist stop deallocate er een fout op. De fout treedt op omdat de CRP de geheimen moet ophalen uit de sleutelkluis, maar dit niet kan. In dit scenario kunt u de certificaten verwijderen uit het virtuele-machineschaalsetmodel.

Het CRP-onderdeel behoudt geen klantgeheimen. Als u voor stop deallocate alle virtuele machines in de virtuele-machineschaalset wordt uitgevoerd, wordt de cache verwijderd. In dit scenario worden geheimen opgehaald uit de sleutelkluis.

U ondervindt dit probleem niet bij het uitschalen, omdat er een kopie in de cache van het geheim is in Azure Service Fabric (in het tenantmodel met één fabric).

Waarom moet ik de certificaatversie opgeven wanneer ik Key Vault?

Het doel van de Key Vault om de certificaatversie op te geven, is om de gebruiker duidelijk te maken welk certificaat is geïmplementeerd op hun VM's.

Als u een VM maakt en vervolgens uw geheim in de sleutelkluis bij werkt, wordt het nieuwe certificaat niet gedownload naar uw VM's. Maar uw VM's lijken er naar te verwijzen en nieuwe VM's krijgen het nieuwe geheim. Om dit te voorkomen, moet u verwijzen naar een geheime versie.

Mijn team werkt met verschillende certificaten die naar ons worden gedistribueerd als openbare CER-sleutels. Wat is de aanbevolen methode voor het implementeren van deze certificaten in een virtuele-machineschaalset?

Als u openbare CER-sleutels wilt implementeren in een virtuele-machineschaalset, kunt u een PFX-bestand genereren dat alleen CER-bestanden bevat. Gebruik hiervoor X509ContentType = Pfx . Laad bijvoorbeeld het CER-bestand als een x509Certificate2-object in C# of PowerShell en roep vervolgens de methode aan.

Zie X509Certificate.Export Method (X509ContentType, String)voor meer informatie.

Hoe kan ik certificaten doorgeven als base64-tekenreeksen?

Als u het doorgeven van een certificaat als een base64-tekenreeks wilt emuleren, kunt u de URL met de meest recente versie in een Resource Manager extraheren. Neem de volgende JSON-eigenschap op in uw Resource Manager sjabloon:

"certificateUrl": "[reference(resourceId(parameters('vaultResourceGroup'), 'Microsoft.KeyVault/vaults/secrets', parameters('vaultName'), parameters('secretName')), '2015-06-01').secretUriWithVersion]"

Moet ik certificaten inpakken in JSON-objecten in sleutelkluizen?

In virtuele-machineschaalsets en VM's moeten certificaten worden verpakt in JSON-objecten.

We ondersteunen ook het inhoudstype application/x-pkcs12.

Momenteel bieden we geen ondersteuning voor CER-bestanden. Als u CER-bestanden wilt gebruiken, exporteert u deze naar PFX-containers.

Naleving en beveiliging

Zijn virtuele-machineschaalsets compatibel met PCI?

Schaalsets van virtuele machines zijn een thin-API-laag bovenop de CRP. Beide componenten maken deel uit van het computerplatform in de boomstructuur van de Azure-service.

Vanuit het perspectief van naleving zijn schaalsets van virtuele machines een fundamenteel onderdeel van het Azure-computerplatform. Ze delen een team, hulpprogramma's, processen, implementatiemethode, beveiligingsmechanismen, JIT-compilatie (just-in-time), bewaking, waarschuwingen enz. met de CRP zelf. Schaalsets van virtuele machines zijn compatibel met PCI (Payment Card Industry) omdat de CRP deel uitmaakt van het huidige PCI DSS-attestation (Data Security Standard).

Zie Microsoft Trust Center voor meer informatie.

Werken beheerde identiteiten voor Azure-resources met virtuele-machineschaalsets?

Ja. U ziet een aantal voorbeeldsjablonen voor MSI in Azure-snelstartsjablonen voor Linux en Windows.

Verwijderen

Worden de vergrendelingen die ik heb ingesteld op instanties van virtuele-machineschaalsets in acht genomen bij het verwijderen van exemplaren?

In Azure Portal hebt u de mogelijkheid om een afzonderlijk exemplaar te verwijderen of bulksgewijs te verwijderen door meerdere exemplaren te selecteren. Als u probeert één exemplaar met een vergrendeling te verwijderen, wordt de vergrendeling in acht genomen en kunt u het exemplaar niet verwijderen. Als u echter bulksgewijs meerdere exemplaren selecteert en een van deze exemplaren een vergrendeling heeft, worden de vergrendelingen niet in acht genomen en worden alle geselecteerde exemplaren verwijderd.

In Azure CLI hebt u alleen de mogelijkheid om een afzonderlijk exemplaar te verwijderen. Als u probeert één exemplaar met een vergrendeling te verwijderen, wordt de vergrendeling in acht genomen en kunt u dat exemplaar niet verwijderen.

Extensies

Hoe kan ik virtuele-machineschaalsetextensie verwijderen?

Gebruik het volgende PowerShell-voorbeeld om een virtuele-machineschaalsetextensie te verwijderen:

$vmss = Get-AzVmss -ResourceGroupName "resource_group_name" -VMScaleSetName "vmssName"

$vmss=Remove-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "extensionName"

Update-AzVmss -ResourceGroupName "resource_group_name" -VMScaleSetName "vmssName" -VirtualMacineScaleSet $vmss

U vindt de waarde voor extensionName in $vmss .

Is er een voorbeeld van een sjabloon voor virtuele-machineschaalsets die kan worden geïntegreerd met Azure Monitor logboeken?

Zie het tweede voorbeeld in Deploy an Azure Service Fabric cluster and enable monitoring by using Azure Monitor logs (Een Azure Service Fabric-cluster implementeren en bewaking inschakelen met behulp van Azure Monitor-logboeken) voor een voorbeeld van een virtuele-machineschaalsetsjabloon die kan worden geïntegreerd met Azure Monitor-logboeken.

Hoe kan ik een extensie toevoegen aan alle VM's in mijn virtuele-machineschaalset?

Als updatebeleid is ingesteld op automatisch, worden alle VM's bijgewerkt door de sjabloon opnieuw teployeren met de nieuwe extensie-eigenschappen.

Als updatebeleid is ingesteld op handmatig, werkt u eerst de extensie bij en werkt u vervolgens handmatig alle exemplaren in uw VM's bij.

Als de extensies die zijn gekoppeld aan een bestaande virtuele-machineschaalset worden bijgewerkt, worden de bestaande VM's dan beïnvloed?

Als de extensiedefinitie in het model van de virtuele-machineschaalset wordt bijgewerkt en de eigenschap upgradePolicy is ingesteld op automatisch, worden de virtuele machines bijgewerkt. Als de eigenschap upgradePolicy is ingesteld op handmatig, worden extensies gemarkeerd als niet overeenkomend met het model.

Worden extensies opnieuw uitgevoerd wanneer de service van een bestaande machine wordt hersteld of wanneer er een nieuwe animatie wordt gemaakt?

Als een bestaande VM hersteld is van de service, wordt deze weergegeven als opnieuw opstarten en worden de extensies niet opnieuw uitgevoerd. Als een VM een nieuwe afbeelding heeft, is het proces vergelijkbaar en wordt het besturingssysteemstation vervangen door de bronafbeelding. Specialisaties van het meest recente model, zoals extensies, worden opnieuw uitgevoerd.

Hoe kan ik een virtuele-machineschaalset toevoegen aan een Active Directory-domein?

Als u een virtuele-machineschaalset wilt toevoegen aan een Active Directory-domein (AD), kunt u een extensie definiëren.

Gebruik de eigenschap JsonADDomainExtension om een extensie te definiëren:

"extensionProfile": {
    "extensions": [
        {
            "name": "joindomain",
            "properties": {
                "publisher": "Microsoft.Compute",
                "type": "JsonADDomainExtension",
                "typeHandlerVersion": "1.3",
                "settings": {
                    "Name": "[parameters('domainName')]",
                    "OUPath": "[variables('ouPath')]",
                    "User": "[variables('domainAndUsername')]",
                    "Restart": "true",
                    "Options": "[variables('domainJoinOptions')]"
                },
                "protectedsettings": {
                    "Password": "[parameters('domainJoinPassword')]"
                }
            }
        }
    ]
}

Mijn virtuele-machineschaalsetextensie probeert iets te installeren dat opnieuw moet worden opgestart.

Als uw extensie voor virtuele-machineschaalsets iets probeert te installeren dat opnieuw moet worden opgestart, kunt u de extensie Azure Automation Desired State Configuration (Automation DSC) gebruiken. Als het besturingssysteem Windows Server 2012 R2 is, haalt Azure de Windows Management Framework (WMF) 5.0-installatie op, start het opnieuw op en gaat vervolgens verder met de configuratie.

Hoe kan ik een aangepast script uitvoeren dat wordt gehost in een privéopslagaccount?

Als u een aangepast script wilt uitvoeren dat wordt gehost in een privéopslagaccount, stelt u beveiligde instellingen in met de sleutel en naam van het opslagaccount. Zie Aangepaste scriptextensie voor meer informatie.

Wachtwoorden

Hoe kan ik wachtwoord opnieuw instellen voor VM's in mijn virtuele-machineschaalset?

Er zijn twee belangrijke manieren om het wachtwoord voor VM's in schaalsets te wijzigen.

  • Wijzig het model van de virtuele-machineschaalset rechtstreeks. Beschikbaar met API 2017-12-01 en hoger.

    Werk de beheerdersreferenties rechtstreeks bij in het schaalsetmodel (bijvoorbeeld met behulp van de Azure Resource Explorer, PowerShell of CLI). Zodra de schaalset is bijgewerkt, hebben alle nieuwe VM's de nieuwe referenties. Bestaande VM's hebben alleen de nieuwe referenties als ze zijn teruggefigd.

  • Stel het wachtwoord opnieuw in met behulp van de VM-toegangsextensies. Zorg ervoor dat u de wachtwoordvereisten volgt zoals hier wordt beschreven.

    Gebruik het volgende PowerShell-voorbeeld:

    $vmssName = "myvmss"
    $vmssResourceGroup = "myvmssrg"
    $publicConfig = @{"UserName" = "newuser"}
    $privateConfig = @{"Password" = "********"}
    
    $extName = "VMAccessAgent"
    $publisher = "Microsoft.Compute"
    $vmss = Get-AzVmss -ResourceGroupName $vmssResourceGroup -VMScaleSetName $vmssName
    $vmss = Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name $extName -Publisher $publisher -Setting $publicConfig -ProtectedSetting $privateConfig -Type $extName -TypeHandlerVersion "2.0" -AutoUpgradeMinorVersion $true
    Update-AzVmss -ResourceGroupName $vmssResourceGroup -Name $vmssName -VirtualMachineScaleSet $vmss
    

Netwerken

Is het mogelijk om een netwerkbeveiligingsgroep (NSG) toe te wijzen aan een schaalset, zodat deze van toepassing is op alle VM-NIC's in de set?

Ja. Een netwerkbeveiligingsgroep kan rechtstreeks op een schaalset worden toegepast door er naar te verwijzen in de sectie networkInterfaceConfigurations van het netwerkprofiel. Voorbeeld:

"networkProfile": {
    "networkInterfaceConfigurations": [
        {
            "name": "nic1",
            "properties": {
                "primary": "true",
                "ipConfigurations": [
                    {
                        "name": "ip1",
                        "properties": {
                            "subnet": {
                                "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('vnetName'), '/subnets/subnet1')]"
                            },
                            "loadBalancerInboundNatPools": [
                                {
                                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('lbName'), '/inboundNatPools/natPool1')]"
                                }
                            ],
                            "loadBalancerBackendAddressPools": [
                                {
                                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('lbName'), '/backendAddressPools/addressPool1')]"
                                }
                            ]
                        }
                    }
                ],
                "networkSecurityGroup": {
                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/networkSecurityGroups/', variables('nsgName'))]"
                }
            }
        }
    ]
}

Hoe kan ik vip wisselen voor virtuele-machineschaalsets in hetzelfde abonnement en dezelfde regio?

Als u twee virtuele-machineschaalsets met Azure Load Balancer-front-ends hebt en ze zich in hetzelfde abonnement en dezelfde regio hebben, kunt u de toewijzing van de openbare IP-adressen van elk van beide wijzigen en aan elkaar toewijzen. Zie VIP wisselen: Blauw-groene implementatie in Azure Resource Manager bijvoorbeeld. Dit impliceert echter een vertraging omdat de toewijzing van de resources op netwerkniveau wordt vereend of toegewezen. Een snellere optie is het gebruik van Azure Application Gateway met twee back-endpools en een regel voor doorsturen. U kunt uw toepassing ook hosten met Azure-app-service die ondersteuning biedt voor snel schakelen tussen faserings- en productiesleuven.

Hoe kan ik een bereik van privé-IP-adressen opgeven die moeten worden gebruikt voor de toewijzing van statische privé-IP-adressen?

IP-adressen worden geselecteerd in een subnet dat u opgeeft.

De toewijzingsmethode van IP-adressen van virtuele-machineschaalsets is altijd dynamisch, maar dat betekent niet dat deze IP-adressen kunnen worden gewijzigd. In dit geval betekent 'dynamisch' alleen dat u het IP-adres niet opgeeft in een PUT-aanvraag. Geef de statische set op met behulp van het subnet.

Hoe kan ik een virtuele-machineschaalset implementeren in een bestaand virtueel Azure-netwerk?

Zie Deploy a virtual machine scale set to an existing virtual network (Een virtuele-machineschaalset implementeren naar een bestaand virtueel netwerk) als u een virtuele-machineschaalset wilt implementeren in een bestaand virtueel Azure-netwerk.

Kan ik schaalsets gebruiken met versneld netwerken?

Ja. Als u versneld netwerken wilt gebruiken, stelt u enableAcceleratedNetworking in op true in de instellingen voor networkInterfaceConfigurations van uw schaalset. Bijvoorbeeld

"networkProfile": {
    "networkInterfaceConfigurations": [
        {
            "name": "niconfig1",
            "properties": {
                "primary": true,
                "enableAcceleratedNetworking" : true,
                "ipConfigurations": [
                ]
            }
        }
    ]
}

Hoe kan ik de DNS-servers configureren die worden gebruikt door een schaalset?

Als u een virtuele-machineschaalset wilt maken met een aangepaste DNS-configuratie, voegt u een JSON-pakket dnsSettings toe aan de sectie networkInterfaceConfigurations van de schaalset. Voorbeeld:

    "dnsSettings":{
        "dnsServers":["10.0.0.6", "10.0.0.5"]
    }

Hoe kan ik een schaalset configureren om een openbaar IP-adres toe te wijzen aan elke VM?

Als u een virtuele-machineschaalset wilt maken die een openbaar IP-adres toewijst aan elke virtuele machine, moet u ervoor zorgen dat de API-versie van de resource Microsoft.Compute/virtualMachineScaleSets 2017-03-30 is en voegt u een JSON-pakket publicipaddressconfiguration toe aan de sectie ipConfigurations van de schaalset. Voorbeeld:

    "publicipaddressconfiguration": {
        "name": "pub1",
        "properties": {
        "idleTimeoutInMinutes": 15
        }
    }

Kan ik een schaalset configureren voor gebruik met meerdere toepassingsgateways?

Ja. U kunt de resource-ID's voor meerdere back-Application Gateway-adresgroepen toevoegen aan de lijst applicationGatewayBackendAddressPools in de sectie ipConfigurations van uw netwerkprofiel voor schaalsets.

Schalen

In welk geval maak ik een virtuele-machineschaalset met minder dan twee VM's?

Een van de redenen om een virtuele-machineschaalset met minder dan twee virtuele machines te maken, is om de elastische eigenschappen van een virtuele-machineschaalset te gebruiken. U kunt bijvoorbeeld een virtuele-machineschaalset met nul VM's implementeren om uw infrastructuur te definiëren zonder kosten voor het uitvoeren van virtuele machines. Wanneer u klaar bent om VM's te implementeren, verhoogt u vervolgens de 'capaciteit' van de virtuele-machineschaalset naar het aantal productie-exemplaren.

Een andere reden waarom u een virtuele-machineschaalset met minder dan twee VM's kunt maken, is als u minder betrokken bent bij beschikbaarheid dan bij het gebruik van een beschikbaarheidsset met discrete VM's. Virtuele-machineschaalsets bieden u een manier om te werken met niet-gedifferentieerde rekeneenheden die kunnen worden gebruikt. Deze uniformiteit is een belangrijk onderscheid tussen virtuele-machineschaalsets en beschikbaarheidssets. Veel staatloze workloads houden geen afzonderlijke eenheden bij. Als de workload afneemt, kunt u omlaag schalen naar één rekeneenheid en vervolgens omhoog schalen naar veel wanneer de workload toeneemt.

Hoe kan ik het aantal virtuele machines in een virtuele-machineschaalset wijzigen?

Als u het aantal virtuele machines in een virtuele-machineschaalset in de Azure Portal wilt wijzigen, klikt u in de sectie Eigenschappen van virtuele-machineschaalset op de blade Schalen en gebruikt u de schuifregelaar.

Hoe kan ik aangepaste waarschuwingen definiëren voor wanneer bepaalde drempelwaarden worden bereikt?

U hebt enige flexibiliteit bij het afhandelen van waarschuwingen voor opgegeven drempelwaarden. U kunt bijvoorbeeld aangepaste webhooks definiëren. Het volgende webhookvoorbeeld is afkomstig uit een Resource Manager sjabloon:

{
    "type": "Microsoft.Insights/autoscaleSettings",
    "apiVersion": "[variables('insightsApi')]",
    "name": "autoscale",
    "location": "[parameters('resourceLocation')]",
    "dependsOn": [
        "[concat('Microsoft.Compute/virtualMachineScaleSets/', parameters('vmSSName'))]"
    ],
    "properties": {
        "name": "autoscale",
        "targetResourceUri": "[concat('/subscriptions/',subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Compute/virtualMachineScaleSets/', parameters('vmSSName'))]",
        "enabled": true,
        "notifications": [
            {
                "operation": "Scale",
                "email": {
                    "sendToSubscriptionAdministrator": true,
                    "sendToSubscriptionCoAdministrators": true,
                    "customEmails": [
                        "youremail@address.com"
                    ]
                },
                "webhooks": [
                    {
                        "serviceUri": "<service uri>",
                        "properties": {
                            "key1": "custommetric",
                            "key2": "scalevmss"
                        }
                    }
                ]
            }
        ]
    }
}

Patching en bewerkingen

Kan ik een schaalset maken in een bestaande resourcegroep?

Ja, u kunt een schaalset maken in een bestaande resourcegroep.

Kan ik een schaalset verplaatsen naar een andere resourcegroep?

Ja, u kunt schaalsetresources verplaatsen naar een nieuw abonnement of een nieuwe resourcegroep.

Hoe kan ik mijn virtuele-machineschaalset bijwerken naar een nieuwe afbeelding? Hoe kan ik patching beheren?

Zie Een virtuele-machineschaalset upgraden als u de virtuele-machineschaalset wilt bijwerken naar een nieuwe afbeelding en patching wilt beheren.

Kan ik de bewerking voor opnieuw instellen gebruiken om een VM opnieuw in te stellen zonder de afbeelding te wijzigen? (Dat wil zeggen dat ik de fabrieksinstellingen van een VM wil herstellen in plaats van naar een nieuwe afbeelding.)

Ja, u kunt de bewerking voor opnieuw instellen gebruiken om een VM opnieuw in te stellen zonder de afbeelding te wijzigen. Als uw virtuele-machineschaalset echter verwijst naar een platformafbeelding met , kan uw virtuele machine worden bijgewerkt naar een version = latest latere besturingssysteemafbeelding wanneer u aanroept. reimage

Is het mogelijk schaalsets te integreren met Azure Monitor logboeken?

Ja, u kunt de extensie voor Azure Monitor op de schaalset-VM's installeren. Hier is een Azure CLI-voorbeeld:

az vmss extension set --name MicrosoftMonitoringAgent --publisher Microsoft.EnterpriseCloud.Monitoring --resource-group Team-03 --vmss-name nt01 --settings "{'workspaceId': '<your workspace ID here>'}" --protected-settings "{'workspaceKey': '<your workspace key here'}"

U vindt de vereiste workspaceId en workspaceKey in de Log Analytics-werkruimte van Azure Portal. Klik op de pagina Overzicht op de Instellingen tegel. Klik bovenaan op het tabblad Verbonden bronnen.

Notitie

Als uw schaalset upgradePolicy is ingesteld op Handmatig, moet u de extensie toepassen op alle VM's in de set door de upgrade op deze VM's aan te roepen. In CLI zou dit az vmss update-instances zijn.

Notitie

Dit artikel is onlangs bijgewerkt waarbij Log Analytics is vervangen door de term Azure Monitor-logboeken. Logboekgegevens worden nog steeds opgeslagen in een Log Analytics-werkruimte, en worden nog steeds verzameld en geanalyseerd met dezelfde Log Analytics-service. De terminologie wordt bijgewerkt om de rol van logboeken in Azure Monitor beter te weerspiegelen. Zie Wijzigingen in Azure Monitor-terminologie voor meer informatie.

Problemen oplossen

Hoe kan ik diagnostische gegevens over opstarten in?

Maak eerst een opslagaccount om diagnostische gegevens over opstarten in te stellen. Plaats vervolgens dit JSON-blok in uw virtuele-machineschaalset virtualMachineProfile en werk de virtuele-machineschaalset bij:

"diagnosticsProfile": {
    "bootDiagnostics": {
        "enabled": true,
        "storageUri": "http://yourstorageaccount.blob.core.windows.net"
    }
}

Wanneer een nieuwe VM wordt gemaakt, toont de eigenschap InstanceView van de VM de details voor de schermopname, en meer. Hier volgt een voorbeeld:

"bootDiagnostics": {
    "consoleScreenshotBlobUri": "https://o0sz3nhtbmkg6geswarm5.blob.core.windows.net/bootdiagnostics-swarmagen-4157d838-8335-4f78-bf0e-b616a99bc8bd/swarm-agent-9574AE92vmss-0_2.4157d838-8335-4f78-bf0e-b616a99bc8bd.screenshot.bmp",
    "serialConsoleLogBlobUri": "https://o0sz3nhtbmkg6geswarm5.blob.core.windows.net/bootdiagnostics-swarmagen-4157d838-8335-4f78-bf0e-b616a99bc8bd/swarm-agent-9574AE92vmss-0_2.4157d838-8335-4f78-bf0e-b616a99bc8bd.serialconsole.log"
}

Eigenschappen van virtuele machines

Hoe kan ik eigenschapsgegevens voor elke VM zonder meerdere aanroepen te doen? Hoe krijg ik bijvoorbeeld het foutdomein voor elk van de 100 virtuele machines in mijn virtuele-machineschaalset?

Als u eigenschapsinformatie voor elke VM wilt verkrijgen zonder meerdere aanroepen te doen, kunt u aanroepen door een REST API op de volgende ListVMInstanceViews GET resource-URI:

/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.Compute/virtualMachineScaleSets/<scaleset_name>/virtualMachines?$expand=instanceView&$select=instanceView

Kan ik verschillende extensieargumenten doorgeven aan verschillende virtuele machines in een virtuele-machineschaalset?

Nee, u kunt geen verschillende extensieargumenten doorgeven aan verschillende virtuele machines in een virtuele-machineschaalset. Extensies kunnen echter worden uitgevoerd op basis van de unieke eigenschappen van de virtuele machine die ze uitvoeren, zoals de naam van de machine. Extensies kunnen ook metagegevens van exemplaren http://169.254.169.254 opvragen voor meer informatie over de VM.

Waarom zijn er hiaten tussen de VM-namen en VM-ID's van mijn virtuele-machineschaalset? Bijvoorbeeld: 0, 1, 3...

Er zijn hiaten tussen de VM-machinenamen en VM-ID's van uw virtuele-machineschaalset, omdat de eigenschap overprovision van uw virtuele-machineschaalset is ingesteld op de standaardwaarde true. Als overprovisioning is ingesteld op true, worden er meer VM's gemaakt dan aangevraagd. Extra VM's worden vervolgens verwijderd. In dit geval krijgt u meer betrouwbaarheid van de implementatie, maar ten koste van aaneengesloten naamgeving en aaneengesloten NAT-regels (Network Address Translation).

U kunt deze eigenschap instellen op false. Voor kleine virtuele-machineschaalsets heeft dit geen grote invloed op de betrouwbaarheid van de implementatie.

Wat is het verschil tussen het verwijderen van een virtuele machine in een virtuele-machineschaalset en het verwijderen van de toewijzing van de virtuele machine? Wanneer moet ik een keuze maken voor de andere?

Het belangrijkste verschil tussen het verwijderen van een virtuele machine in een virtuele-machineschaalset en het verwijderen van de toewijzing van de virtuele machine is dat de virtuele harde schijven deallocate (VHD's) niet worden verwijderd. Er zijn opslagkosten verbonden aan het uitvoeren van stop deallocate . U kunt een van de volgende redenen gebruiken:

  • U wilt stoppen met het betalen van rekenkosten, maar u wilt de schijftoestand van de VM's behouden.
  • U wilt een set VM's sneller starten dan u een virtuele-machineschaalset kunt uitschalen.
    • Met betrekking tot dit scenario hebt u mogelijk uw eigen engine voor automatisch schalen gemaakt en wilt u een snellere end-to-end-schaal.
  • U hebt een virtuele-machineschaalset die ongelijkmatig is verdeeld over foutdomeinen of updatedomeinen. Dit kan komen doordat u selectief VM's hebt verwijderd of omdat VM's zijn verwijderd na overprovisioning. Als u wordt uitgevoerd, gevolgd door op de virtuele-machineschaalset, worden de VM's gelijkmatig verdeeld stop deallocate start over foutdomeinen of updatedomeinen.

Hoe kan ik momentopname maken van een exemplaar van een virtuele-machineschaalset?

Maak een momentopname van een exemplaar van een virtuele-machineschaalset.

$rgname = "myResourceGroup"
$vmssname = "myVMScaleSet"
$Id = 0
$location = "East US"

$vmss1 = Get-AzVmssVM -ResourceGroupName $rgname -VMScaleSetName $vmssname -InstanceId $Id
$snapshotconfig = New-AzSnapshotConfig -Location $location -AccountType Standard_LRS -OsType Windows -CreateOption Copy -SourceUri $vmss1.StorageProfile.OsDisk.ManagedDisk.id
New-AzSnapshot -ResourceGroupName $rgname -SnapshotName 'mySnapshot' -Snapshot $snapshotconfig

Maak een beheerde schijf van de momentopname.

$snapshotName = "mySnapshot"
$snapshot = Get-AzSnapshot -ResourceGroupName $rgname -SnapshotName $snapshotName
$diskConfig = New-AzDiskConfig -AccountType Premium_LRS -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id
$osDisk = New-AzDisk -Disk $diskConfig -ResourceGroupName $rgname -DiskName ($snapshotName + '_Disk')