Veelgestelde vragen over virtuele-machineschaalsets in Azure

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

Meestgestelde vragen over schaalsets

Hoeveel virtuele machines kan een schaalset bevatten?

Een schaalset kan 0 tot 1000 virtuele machines (VM's) hebben op basis van platforminstallatiekopieën of 0 tot 600 VM's op basis van aangepaste installatiekopieën.

Worden gegevensschijven binnen schaalsets ondersteund?

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

  • Azure Managed Disks (Premium v2, Premium, Standard, Ultra)
  • Azure Files (gedeelde SMB- of NFS-stations)
  • Azure Netapp Files
  • Gedeelde Azure-schijven
  • Besturingssysteemstation
  • Tijdelijk station (lokaal, niet ondersteund met Azure Storage)
  • Azure-gegevensservice (bijvoorbeeld Azure Table Storage of Azure Blob Storage)
  • Externe gegevensservice (bijvoorbeeld een externe database)

Welke Azure-regio's ondersteunen schaalsets?

Alle regio's ondersteunen schaalsets.

Welke SKU's worden ondersteund voor virtuele-machineschaalsets?

Alle SKU's worden ondersteund voor virtuele-machineschaalsets.

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

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

Wat is het verschil tussen betweeen OS Image Upgrade en Reimage?

Upgrade van besturingssysteeminstallatiekopieën is een geleidelijk en niet-verstorend proces dat de installatiekopieën van het besturingssysteem voor de hele virtuele-machineschaalset na verloop van tijd bijwerkt, waardoor minimale impact op actieve workloads wordt gegarandeerd.

Een nieuwe installatiekopie is een meer onmiddellijke en verstorende actie die alleen van invloed is op het geselecteerde VM-exemplaar, waardoor het tijdelijk wordt gestopt en het besturingssysteem opnieuw wordt geïnstalleerd.

Meer informatie over het verschil tussen upgrade en installatiekopie van het besturingssysteem.

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

Virtuele machines worden standaard gelijkmatig uit de schaalset verwijderd in beschikbaarheidszones (als de schaalset is geïmplementeerd in zonegebonden 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 voor de schaalset op te geven.

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?

Ja, u kunt de extensievolgorde van de schaalset gebruiken.

Maken schaalsets gebruik van beschikbaarheidssets van Azure?

Een regionale (niet-zonegebonden) schaalset maakt gebruik van plaatsingsgroepen, die fungeren als een impliciete beschikbaarheidsset met vijf foutdomeinen en vijf updatedomeinen. Schaalsets van meer dan 100 VM's omvatten meerdere plaatsingsgroepen. Zie Werken met grote virtuele-machineschaalsets voor meer informatie over plaatsingsgroepen. Een beschikbaarheidsset met virtuele machines kan bestaan in hetzelfde virtuele netwerk als een schaalset met virtuele machines. Een algemene configuratie is het plaatsen van beheerknooppunt-VM's (die vaak een unieke configuratie vereisen) in een beschikbaarheidsset en het plaatsen van gegevensknooppunten in de schaalset.

Werken schaalsets met Azure-beschikbaarheidszones?

Ja. Zie het document voor de zone van de schaalset voor meer informatie.

Automatisch schalen

Wat zijn best practices voor automatische schaalaanpassing van Azure?

Waar vind ik metrische namen voor automatische schaalaanpassing die gebruikmaakt van metrische gegevens op basis van een host?

Zijn er voorbeelden van automatische schaalaanpassing op basis van een Azure Service Bus-onderwerp en wachtrijlengte?

Ja. Zie voor deze voorbeelden algemene metrische gegevens van Azure Monitor automatisch schalen.

Gebruik de volgende JSON voor een Service Bus-wachtrij:

"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 metrische gegevens op basis van een host of een diagnostische extensie?

U kunt een instelling voor automatische schaalaanpassing maken op een virtuele machine om metrische gegevens op hostniveau of metrische gegevens te gebruiken op basis van een gastbesturingssysteem.

Zie Azure Monitor voor automatische schaalaanpassing van algemene metrische gegevens voor een lijst met ondersteunde metrische gegevens.

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

Het voorbeeld maakt gebruik van de metrische cpu-gegevens op hostniveau en een metrische waarde voor het aantal berichten.

Hoe kan ik waarschuwingsregels instellen voor een virtuele-machineschaalset?

U kunt waarschuwingen maken voor metrische gegevens voor virtuele-machineschaalsets via PowerShell of de Azure CLI. Zie de quickstartvoorbeelden van Azure Monitor PowerShell en azure Monitor-quickstarts voor de cli voor meerdere platforms voor meer informatie.

De TargetResourceId virtuele-machineschaalset ziet er als volgt uit:

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

U kunt elke PRESTATIEmeteritem van de VIRTUELE machine kiezen als de metrische waarde voor het instellen van een waarschuwing. Zie voor meer informatie metrische gegevens van gastbesturingssystemen voor op Resource Manager gebaseerde Windows-VM's en metrische gegevens van gastbesturingssystemen voor Linux-VM's in het artikel over automatische schaalaanpassing van algemene metrische gegevens van Azure Monitor.

Hoe kan ik automatische schaalaanpassing instellen op een virtuele-machineschaalset met behulp van PowerShell?

Zie automatisch een virtuele-machineschaalset schalen. U kunt automatische schaalaanpassing ook configureren met de Azure CLI - en Azure-sjablonen.

Als ik een VIRTUELE machine heb gestopt (de toewijzing ongedaan gemaakt), is die VM gestart als onderdeel van een bewerking voor automatische schaalaanpassing?

Nee Als regels voor automatisch schalen meer VM-exemplaren vereisen als onderdeel van een schaalset, wordt er een nieuw VM-exemplaar gemaakt. VM-exemplaren die zijn gestopt (de toewijzing ongedaan gemaakt) worden niet gestart als onderdeel van een gebeurtenis voor automatische schaalaanpassing. Deze gestopte (toewijzing opgeheven) VM's kunnen echter worden verwijderd als onderdeel van een gebeurtenis voor automatische schaalaanpassing die wordt geschaald in het aantal exemplaren, op dezelfde manier als elk VM-exemplaar kan worden verwijderd op basis van de volgorde van vm-exemplaar-id's.

Certificaten

Hoe kan ik een certificaat veilig naar de VIRTUELE machine verzenden?

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

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 en Linux.

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

Hoe kan ik zelfondertekende certificaten gebruiken die zijn ingericht voor Azure Service Fabric-clusters?

Gebruik voor het meest recente voorbeeld in een Azure-shell de volgende Azure CLI-instructie, die wordt afgedrukt naar stdout:

az sf cluster create -h

Zelfondertekende certificaten kunnen niet worden gebruikt voor gedistribueerde vertrouwensrelaties die worden geleverd door een certificeringsinstantie en mogen niet worden gebruikt voor een Service Fabric-cluster dat is bedoeld voor het hosten van bedrijfsproductieoplossingen. Raadpleeg de best practices voor Azure Service Fabric-beveiliging en beveiligingsscenario's voor Service Fabric-clusters voor meer beveiligingsrichtlijnen.

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

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

Opnemen osProfile 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-snelstartsjabloon.

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 staan die u op uw computer wilt behouden in de lijst. Met deze actie wordt het certificaat niet van al uw VM's verwijderd. Het certificaat wordt ook niet toegevoegd aan nieuwe VIRTUELE machines die zijn gemaakt in de virtuele-machineschaalset.

Als u het certificaat uit bestaande VM's wilt verwijderen, gebruikt u een aangepaste scriptextensie om het certificaat handmatig uit het certificaatarchief te verwijderen.

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

Als u de VM's alleen met een openbare SSH-sleutel opgeeft, hoeft u de openbare sleutels niet in Azure Key Vault te plaatsen. Openbare sleutels zijn niet geheim.

U kunt openbare SSH-sleutels opgeven in tekst zonder opmaak wanneer u een Virtuele Linux-machine maakt:

"linuxConfiguration": {
    "ssh": {
        "publicKeys": [
            {
                "path": "path",
                "keyData": "publickey"
            }
        ]
    }
}
linuxConfiguration elementnaam Vereist Type Description
ssh Nee Verzameling Hiermee geeft u de SSH-sleutelconfiguratie voor een Linux-besturingssysteem.
path Ja String Hiermee geeft u het Linux-bestandspad op waar de SSH-sleutels of het certificaat zich moeten bevinden.
keyData Ja String Hiermee geeft u een met base64 gecodeerde openbare SSH-sleutel op.

Zie de quickstartsjabloon vm-sshkey GitHub voor een voorbeeld.

Wanneer ik 'Update-AzVmss' uitvoert nadat ik meer dan één certificaat uit dezelfde sleutelkluis heb toegevoegd, waarom krijg ik dan een foutbericht?

Deze fout kan optreden 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 meer geheimen toevoegt.

Als u meer geheimen uit dezelfde sleutelkluis wilt toevoegen, werkt u de volgende lijst bij: $vmss.properties.osProfile.secrets[0].vaultCertificates

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

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

Notitie

Op dit moment kunt u certificaten van VM's niet verwijderen met behulp van de VIRTUELE-machineschaalset-API.

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

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

U hoeft geen wachtwoorden in scripts in code vast te schrijven. U kunt dynamisch wachtwoorden ophalen met de machtigingen die u gebruikt om het implementatiescript uit te voeren. Als u een script hebt waarmee een certificaat uit de sleutelkluis voor het geheimarchief wordt verplaatst, voert de opdracht voor het geheimarchief get certificate ook het wachtwoord van het PFX-bestand uit.

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

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

Het doel van het aangeven van de bronkluis is het afdwingen van ACL-beleid (Access Control List) dat bestaat in het Azure Cloud Services-model van een gebruiker. Als de bronkluis niet is opgegeven, kunnen gebruikers die geen machtigingen hebben voor het implementeren of openen van geheimen voor een sleutelkluis, via een compute-resourceprovider (CRP). ACL's bestaan zelfs voor resources die niet bestaan.

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

Als ik geheimen aan een bestaande virtuele-machineschaalset toevoeg, worden de geheimen in bestaande VM's of alleen in nieuwe vm's opgenomen?

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

Waar plaats ik certificaten voor Linux-VM's?

Zie Certificaten implementeren op VM's vanuit een door de klant beheerde sleutelkluis voor meer informatie over het implementeren van certificaten voor 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 ik een installatiekopie van een VIRTUELE machine maak?

Als u een installatiekopie van een virtuele machine opnieuw maakt, worden certificaten verwijderd. Als u de hele besturingssysteemschijf opnieuw wilt herstellen, wordt de hele schijf van het besturingssysteem verwijderd.

Wat gebeurt er als ik een certificaat uit de sleutelkluis verwijder?

Als het geheim wordt verwijderd uit de sleutelkluis en u vervolgens uitvoert stop deallocate voor al uw VM's en deze vervolgens opnieuw start, treedt 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 maakt klantgeheimen niet persistent. Als u voor alle VM's in de virtuele-machineschaalset uitvoert stop deallocate , wordt de cache verwijderd. In dit scenario worden geheimen opgehaald uit de sleutelkluis.

Dit probleem treedt niet op wanneer u uitschaalt, omdat er een kopie van het geheim in de cache is in Azure Service Fabric (in het tenantmodel met één infrastructuur).

Waarom moet ik de certificaatversie opgeven wanneer ik Key Vault gebruik?

Het doel is om de gebruiker duidelijk te maken welk certificaat op hun VM's wordt geïmplementeerd.

Als u een virtuele machine maakt en uw geheim vervolgens bijwerkt in de sleutelkluis, wordt het nieuwe certificaat niet gedownload naar uw VM's. Maar uw VM's lijken ernaar te verwijzen en nieuwe VM's krijgen het nieuwe geheim. Om dit probleem 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 .cer openbare sleutels wilt implementeren in een virtuele-machineschaalset, kunt u een PFX-bestand genereren dat alleen CER-bestanden bevat. Gebruik X509ContentType = Pfxhiervoor . 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 meest recente url extraheren in een Resource Manager-sjabloon. 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 verpakken in JSON-objecten in sleutelkluizen?

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

We ondersteunen ook de toepassing van het inhoudstype /x-pkcs12.

We bieden momenteel geen ondersteuning voor CER-bestanden. Als u CER-bestanden wilt gebruiken, exporteert u ze naar PFX-containers.

Compliance en beveiliging

Zijn virtuele-machineschaalsets PCI-compatibel?

Virtuele-machineschaalsets zijn een thin API-laag boven op de CRP. Beide componenten maken deel uit van het computerplatform in de boomstructuur van de Azure-service.

Vanuit het oogpunt van naleving zijn virtuele-machineschaalsets een fundamenteel onderdeel van het Azure-rekenplatform. Ze delen het volgende met de CRP zelf: een team, hulpprogramma's, processen, implementatiemethodologie, beveiligingscontroles, JIT-compilatie, bewaking en waarschuwingen. Virtual Machine Scale Sets zijn PCI-compatibel (Payment Card Industry), omdat de CRP deel uitmaakt van de huidige DSS-attestation (PCI Data Security Standard).

Zie het Microsoft Vertrouwenscentrum voor meer informatie.

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

Ja. Zie het overzicht van beheerde identiteiten voor meer informatie. U kunt enkele voorbeelden van MSI-sjablonen zien in Azure-quickstartsjablonen voor Linux en Windows.

Verwijderen

Worden de vergrendelingen die ik heb ingesteld op instanties van virtuele-machineschaalsets gerespecteerd wanneer ik instanties verwijder?

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

In de Azure CLI hebt u alleen de mogelijkheid om een afzonderlijk exemplaar te verwijderen. Als u probeert één exemplaar te verwijderen dat een vergrendeling heeft, wordt de vergrendeling gerespecteerd en kunt u die instantie niet verwijderen.

Uitbreidingen

Hoe kan ik een virtuele-machineschaalsetextensie verwijderen?

Als u een virtuele-machineschaalsetextensie wilt verwijderen, gebruikt u het volgende PowerShell-voorbeeld:

$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 extensionName waarde in $vmss.

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

Zie het tweede voorbeeld in Een Azure Service Fabric-cluster implementeren en bewaking inschakelen met behulp van Azure Monitor-logboeken voor een sjabloon voor een virtuele-machineschaalset die kan worden geïntegreerd met Azure Monitor-logboeken.

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

Als het updatebeleid is ingesteld op automatisch, implementeert u de sjabloon opnieuw met de nieuwe extensie-eigenschappen om alle VM's bij te werken.

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

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

Als de extensiedefinitie in het virtuele-machineschaalsetmodel wordt bijgewerkt en de upgradePolicy eigenschap is ingesteld automaticop, worden de VM's bijgewerkt. Als de upgradePolicy eigenschap is ingesteld op manual, worden extensies gemarkeerd als niet overeenkomend met het model.

Worden extensies opnieuw uitgevoerd wanneer een bestaande machine een serviceherstel of een nieuwe installatiekopie heeft?

Als een bestaande VM is hersteld door de service, wordt deze weergegeven als opnieuw opstarten en worden de extensies niet opnieuw uitgevoerd. Als er een nieuwe installatiekopie van een virtuele machine wordt gemaakt, is het proces vergelijkbaar met het vervangen van het besturingssysteemstation door de broninstallatiekopie. Specialisaties van het nieuwste 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, kunt u een extensie definiëren.

Als u een extensie wilt definiëren, gebruikt u de JsonADDomainExtension eigenschap:

"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 extensie voor virtuele-machineschaalsets probeert iets te installeren waarvoor opnieuw opstarten is vereist. Wat moet ik doen?

U kunt de Azure Automation Desired State Configuration-extensie gebruiken. Als het besturingssysteem Windows Server 2012 R2 is, haalt Azure de installatie van Windows Management Framework (WMF) 5.0 op, wordt deze opnieuw opgestart en wordt de configuratie voortgezet.

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

Stel beveiligde instellingen in met de sleutel en naam van het opslagaccount. Zie Aangepaste scriptextensie voor meer informatie.

Wachtwoords

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

U kunt:

  • Wijzig het model van de virtuele-machineschaalset rechtstreeks. Deze optie is alleen beschikbaar met API 2017-12-01 en nieuwere versies.

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

  • Stel het wachtwoord opnieuw in met behulp van de VM-toegangsextensies. Zorg ervoor dat u voldoet aan de wachtwoordvereisten, zoals beschreven in de veelgestelde vragen.

    Voor het gebruik van een VM-toegangsextensie is geen nieuwe versie vereist, omdat het wachtwoord in het model niet door de extensie wordt bijgewerkt. Met de extensie wordt een script uitgevoerd om het wachtwoord toe te voegen aan het wachtwoord of aan het SSH-sleutelbestand. De extensie verwijdert de oorspronkelijke SSH-sleutel niet. Zodra de extensie is bijgewerkt, voert u een upgrade uit van de exemplaren om de updates toe te passen op de gebruikersnaam en het wachtwoord op alle VM-exemplaren.

    Notitie

    Als beleid voor automatische upgrade is ingesteld op manual, selecteert u handmatig het exemplaar om een upgradebewerking uit te voeren op afzonderlijke VM-exemplaren. Als automatische upgrade is ingesteld op Auto, wordt de extensie automatisch bijgewerkt. Zie Automatische uitbreidingsupgrades voor meer informatie

    Gebruik het volgende PowerShell-voorbeeld voor een virtuele-machineschaalset van Windows:

    $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
    

    Gebruik het volgende Azure CLI-voorbeeld voor een virtuele Linux-machineschaalset:

    az vmss extension set \
      --resource-group myResouceGroup \ 
      --vmss-name myScaleSet \
      --publisher Microsoft.OSTCExtensions \
      --name VMAccessForLinux \
      --version 1.5 \
      --protected-settings "{'username': 'newUser', 'password': 'newPassword'}"
    

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. U kunt een NSG rechtstreeks toepassen op een schaalset door ernaar te verwijzen in de networkInterfaceConfigurations sectie van het netwerkprofiel. Hier volgt een 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 een VIRTUELE IP(VIP) wisselen voor virtuele-machineschaalsets in hetzelfde abonnement en dezelfde regio?

Als u twee virtuele-machineschaalsets hebt met Azure Load Balancer en deze zich in hetzelfde abonnement en dezelfde regio bevinden, kunt u de toewijzing van de openbare IP-adressen ongedaan maken en deze toewijzen aan de andere. Zie VIP-wisseling: Blauwgroene implementatie in Azure Resource Manager voor meer informatie. Er kan echter een vertraging optreden omdat de toewijzing van de resources ongedaan wordt gemaakt of toegewezen op netwerkniveau. Een snellere optie is om Azure-toepassing Gateway te gebruiken met twee back-endpools en een routeringsregel. U kunt uw toepassing ook hosten met Azure-app Service, dat ondersteuning biedt voor snel schakelen tussen faserings- en productiesites.

Hoe kan ik een bereik van privé-IP-adressen opgeven dat moet worden gebruikt voor toewijzing van vaste privé-IP-adressen?

IP-adressen worden geselecteerd uit 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?

Kan ik schaalsets gebruiken met versneld netwerken?

Ja. Als u versneld netwerken wilt gebruiken, stelt u deze in enableAcceleratedNetworkingtrue de instellingen van networkInterfaceConfigurations uw schaalset in. Voorbeeld:

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

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

Als u een virtuele-machineschaalset met een aangepaste DNS-configuratie wilt maken, voegt u een dnsSettings JSON-pakket toe aan de sectie schaalset networkInterfaceConfigurations . Hier volgt een 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 VIRTUELE machine?

Als u een virtuele-machineschaalset wilt maken die een openbaar IP-adres aan elke virtuele machine toewijst, moet u ervoor zorgen dat de API-versie van de resource Microsoft.Compute/virtualMachineScaleSets 2017-03-30 is en voeg een publicipaddressconfiguration JSON-pakket toe aan de sectie van de schaalset ipConfigurations . Hier volgt een 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-endadresgroepen van de toepassingsgateway toevoegen aan de applicationGatewayBackendAddressPools lijst in de ipConfigurations sectie van uw netwerkprofiel voor de schaalset.

Schaal wijzigen

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

Een van de redenen voor het maken van een virtuele-machineschaalset met minder dan twee VM's is het gebruik van de elastische eigenschappen van een virtuele-machineschaalset. U kunt bijvoorbeeld een virtuele-machineschaalset met nul VM's implementeren om uw infrastructuur te definiëren zonder kosten voor vm-uitvoering te betalen. Wanneer u klaar bent om VM's te implementeren, kunt u vervolgens de capaciteit van de virtuele-machineschaalset verhogen 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 beschikbaarheid hebt dan met het gebruik van een beschikbaarheidsset met discrete VM's. Virtuele-machineschaalsets bieden u een manier om te werken met niet-gedifferentieerde rekeneenheden die vervangbaar zijn. Deze uniformiteit is een belangrijke differentiator voor virtuele-machineschaalsets versus beschikbaarheidssets. Veel stateless workloads volgen geen afzonderlijke eenheden. Als de workload afneemt, kunt u omlaag schalen naar één rekeneenheid en vervolgens omhoog schalen tot 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 Azure Portal wilt wijzigen, selecteert u in de sectie Eigenschappen van de virtuele-machineschaalset het deelvenster 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 van 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"
                        }
                    }
                ]
            }
        ]
    }
}

Patchen en bewerkingen

Kan ik een schaalset maken in een bestaande resourcegroep?

Ja, dat kan.

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 installatiekopieën? Hoe kan ik patching beheren?

Als u de virtuele-machineschaalset wilt bijwerken naar een nieuwe installatiekopieën en patching wilt beheren, raadpleegt u Een virtuele-machineschaalset bijwerken.

Kan ik de installatiekopiebewerking gebruiken om een virtuele machine opnieuw in te stellen zonder de installatiekopie te wijzigen? (Dat wil gezegd, ik wil een VM terugzetten naar fabrieksinstellingen in plaats van naar een nieuwe installatiekopieën.)

Ja, u kunt de installatiekopiebewerking gebruiken om een virtuele machine opnieuw in te stellen zonder de installatiekopie te wijzigen. Als uw virtuele-machineschaalset echter verwijst naar een platforminstallatiekopieën version = latest, kan uw VM worden bijgewerkt naar een latere installatiekopieën van het besturingssysteem wanneer u aanroept reimage.

Is het mogelijk om schaalsets te integreren met Azure Monitor-logboeken?

Ja, u kunt de Azure Monitor-extensie installeren op de vm's van de schaalset. Hier volgt een voorbeeld waarin de Azure CLI wordt gebruikt:

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. Selecteer op de pagina Overzicht de tegel Instellingen. Selecteer het tabblad Verbinding maken Bronnen bovenaan.

Notitie

Als uw schaalset upgradePolicy is ingesteld op handmatig, moet u de extensie toepassen op alle VM's in de set door een upgrade aan te roepen. In de Azure CLI is az vmss update-instancesdit .

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 inschakelen?

Als u diagnostische gegevens over opstarten wilt inschakelen, maakt u eerst een opslagaccount. Plaats dit JSON-blok vervolgens in uw virtuele-machineschaalset virtualMachineProfileen werk de virtuele-machineschaalset bij:

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

Wanneer er een nieuwe VIRTUELE machine wordt gemaakt, toont de InstanceView eigenschap van de VIRTUELE machine de details voor de schermopname. 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"
}

Hoe kan ik andere problemen oplossen?

Eigenschappen van virtuele machines

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

U kunt aanroepen ListVMInstanceViews door een REST API GET uit te voeren op de volgende resource-URI:

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

Houd er rekening mee dat foutdomein niet wordt geretourneerd wanneer de schaalset maximaal spreiden gebruikt (platformFaultDomainCount = 1), omdat er geen garantie is voor het aantal foutdomeinen dat met deze instelling wordt gebruikt.

Kan ik verschillende extensieargumenten doorgeven aan verschillende VM's in een virtuele-machineschaalset?

Nee dat kan niet. Extensies kunnen echter reageren op basis van de unieke eigenschappen van de VM waarop ze worden uitgevoerd, zoals op de computernaam. Extensies kunnen ook metagegevens van exemplaren opvragen http://169.254.169.254 voor meer informatie over de VIRTUELE machine.

Waarom zijn er hiaten (bijvoorbeeld 0, 1, 3) tussen de namen van vm-machines en VM-id's van mijn virtuele-machineschaalset?

Hiaten zijn omdat de eigenschap virtuele-machineschaalset overprovision is ingesteld op de standaardwaarde van true. Als overprovisioning is ingesteld op true, worden er meer VM's gemaakt dan aangevraagd. Vervolgens worden extra VM's 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 wordt de betrouwbaarheid van de implementatie niet aanzienlijk beïnvloed.

Wat is het verschil tussen het verwijderen van een virtuele machine in een virtuele-machineschaalset en het ongedaan maken van de toewijzing van de VM? Wanneer moet ik er een kiezen boven de andere?

Het belangrijkste verschil is dat deallocate de virtuele harde schijven (VHD's) niet worden verwijderd. Er zijn opslagkosten gekoppeld aan het uitvoeren stop deallocate. U kunt een of meer van de volgende redenen gebruiken:

  • U wilt stoppen met het betalen van rekenkosten, maar u wilt de schijfstatus van de VM's behouden.
  • U wilt een set virtuele machines sneller starten dan u een virtuele-machineschaalset kunt uitschalen.
    • Met betrekking tot dit scenario hebt u mogelijk uw eigen engine voor automatische schaalaanpassing gemaakt en wilt u een snellere end-to-end-schaal.
  • U hebt een virtuele-machineschaalset die ongelijk verdeeld is over foutdomeinen of updatedomeinen. Deze ongelijke distributie kan zijn omdat u selectief virtuele machines hebt verwijderd of omdat vm's zijn verwijderd na overprovisioning. Als stop deallocate de virtuele-machineschaalset wordt uitgevoerd start , worden de VM's gelijkmatig verdeeld over foutdomeinen of updatedomeinen.

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

Maak een momentopname van een exemplaar van een virtuele-machineschaalset. Hier volgt een voorbeeld:

$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 op basis van de momentopname. Hier volgt een voorbeeld:

$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')