Zestaw często zadawanych pytania na skalę maszyn wirtualnych platformy Azure

Poznaj odpowiedzi na często zadawane pytania dotyczące zestawów skalowania maszyn wirtualnych na platformie Azure.

Najczęściej zadawane pytania dotyczące zestawów skali

Ile maszyn wirtualnych można mieć w zestawie skali?

Zestaw skali może mieć od 0 do 1000 maszyn wirtualnych na podstawie obrazów platform lub od 0 do 600 maszyn wirtualnych na podstawie obrazów niestandardowych.

Czy dyskietki z danymi są obsługiwane w zestawach skali?

Tak. Zestaw skali może zdefiniować konfigurację dołączonych dyskietek danych, która ma zastosowanie do wszystkich maszyn wirtualnych w tym zestawie. Aby uzyskać więcej informacji, zobacz Zestawy skali platformy Azure i dołączone dyskietki z danymi. Inne opcje przechowywania danych są następujące:

  • Pliki platformy Azure (dyski udostępnione SMB)
  • Dyskietki udostępnione na platformie Azure
  • Dysk systemu operacyjnego
  • Dysk tymczasowy (lokalny, bez kopii zapasowej przez usługę Azure Storage)
  • Usługa danych Azure (na przykład tabele platformy Azure, obiekty blob platformy Azure)
  • Usługa danych zewnętrznych (na przykład zdalna baza danych)

Które regiony platformy Azure obsługują zestawy skali?

Wszystkie regiony obsługują zestawy skali.

Jak utworzyć zestaw skali przy użyciu obrazu niestandardowego?

Utwórz i przechwyć obraz maszyny wirtualnej, a następnie użyj go jako źródła dla zestawu skali. W samouczku na temat tworzenia i używania niestandardowego obrazu maszyny wirtualnej można użyć interfejsu wideo platformy Azure lub Azure PowerShell

Jeśli zmniejszę pojemność zestawu skal z 20 do 15, które maszyny wirtualne zostaną usunięte?

Domyślnie maszyny wirtualne są usuwane ze skali ustawionej równomiernie w różnych strefach dostępności (jeśli zestaw skali został wdrożony w konfiguracji zonal) i domeny błędów w celu zmaksymalizowania dostępności. Najpierw usuwane są maszyny wirtualne o najwyższych identyfikatorach.

Możesz zmienić kolejność usuwania maszyny wirtualnej, określając zasady skalowania dla zestawu skali.

Co zrobić, jeśli wtedy zwiększę wydajność z 15 do 18?

Jeśli zwiększysz wydajność do 18, zostaną utworzone 3 nowe maszyny wirtualne. Za każdym razem identyfikator wystąpienia maszyny wirtualnej jest zwiększany od poprzedniej największej wartości (na przykład 20, 21, 22). Maszyny wirtualne są zrównoważone we wszystkich domenach błędów.

Czy podczas używania wielu rozszerzeń w zestawie skal można wymusić sekwencję wykonywania?

Tak, możesz użyć sekwencji rozszerzeń zestawu skali.

Czy zestawy skali działają z zestawami dostępności platformy Azure?

W zestawie skali regionalnych (niezonalnych) są używane grupy położenia ,które działają jako niejawny zestaw dostępności z pięcioma domenami błędów i pięcioma domenami aktualizacji. Skalowanie zestawów więcej niż 100 maszyn wirtualnych obejmuje wiele grup położenia. Aby uzyskać więcej informacji na temat grup rozmieszczenia, zobacz Praca z dużymi zestawami skal maszyn wirtualnych. Zestaw maszyn wirtualnych do dostępności może istnieć w tej samej sieci wirtualnej, co zestaw skalowania maszyn wirtualnych. Często spotykaną konfiguracją jest umieszczanie maszyn wirtualnych węzła kontrolki (które często wymagają unikatowej konfiguracji) w zestawie dostępności, a następnie umieszczanie węzłów danych w zestawie skali.

Czy zestawy skali działają ze strefami dostępności platformy Azure?

Tak! Aby uzyskać więcej informacji, zobacz skalowanie zestawu zone doc.

Automatyczne skalowanie

Jakie są najlepsze rozwiązania dotyczące automatycznego skalowania w usłudze Azure?

Aby uzyskać najlepsze rozwiązania dotyczące skalowania automatycznego, zobacz Najlepsze rozwiązania dotyczące automatycznych skalowania maszyn wirtualnych.

Gdzie można znaleźć metryki dla automatycznego skalowania, które korzysta z metryk opartych na hoście?

Aby uzyskać metryczne nazwy dla automatycznego skalowania, które korzysta z metryk opartych na hoście, zobacz Metryki obsługiwane przez Azure Monitor.

Czy istnieją jakieś przykłady automatycznego skalowania na podstawie tematu Service Bus usługi Azure i długości kolejki?

Tak. Aby uzyskać przykłady automatycznego skalowania na podstawie tematu Service Bus usługi Azure i długości kolejki, zobacz Wyświetlanie typowych metryk w programie Azure Monitorautomatycznie.

W przypadku Service Bus danych użyj następującego JSON:

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

W przypadku kolejki magazynu użyj następującego JSON:

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

Zamień wartości przykładowe na identyfikatory URI (Uniform Resource Identifiers).

Czy należy automatycznie skalować przy użyciu metryk opartych na hoście lub rozszerzenia diagnostycznego?

Możesz utworzyć ustawienie automatycznego skalowania na maszyny wirtualnej, aby używać metryk na poziomie hosta lub gościa w systemie operacyjnym.

Aby uzyskać listę obsługiwanych metryk, zobacz Wyświetlanie typowych metryk w programie Azure Monitor.

Aby uzyskać pełną próbkę zestawów skal dla maszyn wirtualnych, zobacz Zaawansowana konfiguracja automatycznego skalowania przy użyciu szablonów Menedżera zasobów dla zestawów skal maszyn wirtualnych.

W tym przykładzie użyto metryki procesora na poziomie hosta i metryki liczby wiadomości.

Jak ustawić reguły alertów w zestawie skali maszyny wirtualnej?

Możesz tworzyć alerty dotyczące metryk dla zestawów skal maszyn wirtualnych za pośrednictwem programu PowerShell lub zestawu azure CLI. Aby uzyskać więcej informacji, zobacz Przykłady szybkiego startu programu PowerShell dla programu Azure Monitor i Przykłady szybkiego startu dla międzyplatformowegointerfejsu wideo programu Azure Monitor.

Wartość TargetResourceId zestawu skali maszyny wirtualnej wygląda następująco:

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

Możesz wybrać dowolny licznik wydajności maszyny wirtualnej jako metrykę dla ustawienia alertu. Aby uzyskać więcej informacji, zobacz Metryki gościa systemu operacyjnego dla maszyn wirtualnych opartych na menedżerze zasobów Windows i Metryki OS gościa dla maszyn wirtualnych systemu Linux w artykule Automatyczne obliczanie typowych metryk na platformie Azure Monitor.

Jak skonfigurować automatyczne skalowanie na skali maszyny wirtualnej ustawionej za pomocą programu PowerShell?

Aby skonfigurować automatyczne skalowanie na skali maszyny wirtualnej ustawionej za pomocą programu PowerShell, zobacz Automatyczne skalowanie zestawu skali maszyny wirtualnej. Możesz również skonfigurować automatyczne skalowanie przy użyciu interfejsu użytkownika platformy Azure i szablonów platformy Azure

Czy jeśli zatrzymano (deallocated) maszyny wirtualnej, czy w ramach operacji automatycznego skalowania została uruchomiona maszyny wirtualnej?

Nie. Jeśli reguły automatycznego skalowania wymagają dodatkowych wystąpień maszyny wirtualnej jako części zestawu skali, jest tworzone nowe wystąpienie maszyny wirtualnej. Zatrzymane wystąpienia maszyny wirtualnej (deallocated) nie są rozpoczynane w ramach zdarzenia skalowania automatycznego. Jednak zatrzymane (deallocated) maszyny wirtualne mogą zostać usunięte jako część zdarzenia skalowania automatycznego w celu skalowania liczby wystąpień tak samo, jak każde wystąpienie maszyny wirtualnej może zostać usunięte zgodnie z kolejnością identyfikatora wystąpienia maszyny wirtualnej.

Certyfikaty

Jak bezpiecznie wysłać certyfikat do maszyny wirtualnej?

Aby bezpiecznie wysłać certyfikat do maszyny wirtualnej, możesz zainstalować certyfikat klienta bezpośrednio do magazynu certyfikatów Windows z magazynu kluczy klienta.

Użyj następującego 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"
            }
        ]
    }
]

Kod obsługuje Windows i Linux.

Aby uzyskać więcej informacji, zobacz Tworzenie lub aktualizowanie zestawu skali maszyny wirtualnej.

Jak używać certyfikatów z podpisem własnym aprowizowanych dla klastrów usługi Azure Service Fabric?

Aby zapoznać się z najnowszym przykładem, użyj następującej instrukcji azure CLI w obrębie powłoki platformy Azure, przeczytaj przykładową dokumentację modułu obsługi cli cli, która zostanie wydrukowana do stdout:

az sf cluster create -h

Certyfikatów z podpisem własnym nie można używać dla zaufania rozproszonego zapewnianych przez urząd certyfikacji i nie należy ich używać w żadnym klastrze Service Fabric przeznaczonym do hostowania rozwiązań produkcyjnych przedsiębiorstwa; aby uzyskać dodatkowe wskazówki dotyczące zabezpieczeń usługi Service Fabric, zapoznaj się z najlepszymi rozwiązaniami w zakresie zabezpieczeń usługi Azure Service Fabrici Service Fabric scenariuszy zabezpieczeń klastrów.

Czy mogę określić parę klawiszy SSH do użycia w celu uwierzytelniania SSH z zestawem skali maszyn wirtualnych systemu Linux na podstawie szablonu Menedżera zasobów?

Tak. Interfejs API REST dla pliku osProfile jest podobny do standardowego interfejsu API REST maszyny wirtualnej.

Uwzględnij plik osProfile w szablonie:

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

Ten blok JSON jest używany w tym szablonie Azure Quickstart.

Aby uzyskać więcej informacji, zobacz Tworzenie lub aktualizowanie zestawu skali maszyny wirtualnej.

Jak usunąć przestarzałe certyfikaty?

Aby usunąć przestarzałe certyfikaty, usuń stary certyfikat z listy certyfikatów magazynu. Pozostaw na liście wszystkie certyfikaty, które mają pozostać na komputerze. Nie spowoduje to usunięcia certyfikatu ze wszystkich maszyn wirtualnych. Nie powoduje także dodania certyfikatu do nowych maszyn wirtualnych tworzona w zestawie skali maszyny wirtualnej.

Aby usunąć certyfikat z istniejących maszyn wirtualnych, użyj rozszerzenia skryptu niestandardowego w celu ręcznego usunięcia certyfikatów z magazynu certyfikatów.

Jak wsadować istniejący klucz publiczny SSH do warstwy SSH zestawu skalowania maszyn wirtualnych podczas inicjowania obsługi?

Jeśli używasz maszyn wirtualnych tylko z publicznym kluczem SSH, nie musisz umieszczać kluczy publicznych w magazynie kluczy. Klucze publiczne nie są tajne.

Klucze publiczne SSH można udostępnić w postaci zwykłego tekstu podczas tworzenia maszyny wirtualnej systemu Linux:

"linuxConfiguration": {
    "ssh": {
        "publicKeys": [
            {
                "path": "path",
                "keyData": "publickey"
            }
        ]
    }
}
linuxConfiguration element name Wymagane Typ Opis
ssh Nie Kolekcja Określa konfigurację klucza SSH dla systemu operacyjnego Linux
ścieżka Tak Ciąg Określa ścieżkę pliku w systemie Linux, w której powinny się znaleźć klucze SSH lub certyfikat.
keyData Tak Ciąg Określa zakodowany klucz publiczny SSH z kodem base64

Na przykład zobacz szablon szybki start dla maszyny wirtualnej GitHub.

Gdy uruchamiam program "Update-AzVmss" po dodaniu więcej niż jednego certyfikatu z tego samego magazynu kluczy, jest wyświetlany następujący komunikat:

Update-AzVmss: Lista tajna zawiera powtarzające się wystąpienia /subscriptions/ < my-subscription-id > /resourceGroups/internal-rg-dev/providers/Microsoft.KeyVault/vaults/internal-keyvault-dev, co jest niedozwolone.

Może się tak zdarzyć, jeśli spróbujesz ponownie dodać ten sam magazyn, zamiast używać nowego certyfikatu magazynu dla istniejącego magazynu źródłowego. Polecenie Add-AzVmssSecret nie działa poprawnie, jeśli dodajesz kolejne sekrety.

Aby dodać więcej sekretów z tego samego magazynu kluczy, zaktualizuj $vmss.properties.osProfile.secrets[0].vaultCertificates listy.

Aby uzyskać oczekiwaną strukturę wprowadzania, zobacz Tworzenie lub aktualizowanie zestawu maszyn wirtualnych.

Znajdź tajny obiekt w zestawie skal maszyn wirtualnych, który znajduje się w magazynie kluczy. Następnie dodaj odwołanie do certyfikatu (adres URL i nazwę tajnego magazynu) do listy skojarzonej z magazynem.

Uwaga

Obecnie nie można usuwać certyfikatów z maszyn wirtualnych przy użyciu interfejsu API zestawu skal maszyn wirtualnych.

Nowe maszyny wirtualne nie będą mieć starego certyfikatu. Natomiast maszyny wirtualne, które mają certyfikat i które są już wdrożone, będą mieć stary certyfikat.

Czy mogę wypychać certyfikaty do zestawu skali maszyny wirtualnej bez poświadczeń hasła, gdy certyfikat znajduje się w tajnym magazynie?

W skryptach nie trzeba kodować haseł o trudnym kodzie. Możesz dynamicznie pobierać hasła przy użyciu uprawnień, których używasz do uruchamiania skryptu wdrożenia. Jeśli masz skrypt, który przenosi certyfikat z magazynu kluczy tajnego magazynu, polecenie tajnego magazynu również wyprowadza hasło get certificate pliku pfx.

Jak działa właściwość Secrets pliku virtualMachineProfile.osProfile dla skali maszyny wirtualnej? Dlaczego potrzebuję wartości sourceVault, gdy muszę określić bezwzględny adres URI certyfikatu przy użyciu właściwości certificateUrl?

Odwołanie Windows zdalnej zarządzania (WinRM) musi znajdować się we właściwości Tajemnice profilu systemu operacyjnego.

Celem wskazywania magazynu źródłowego jest wymuszanie zasad listy kontroli dostępu (ACL) istniejących w modelu usługi azure w chmurze użytkownika. Jeśli magazyn źródłowy nie zostanie określony, użytkownicy, którzy nie mają uprawnień do wdrażania lub uzyskiwania dostępu do sekretów magazynu kluczy, będą mogli to zrobić za pośrednictwem dostawcy zasobów obliczeniowych. ACL istnieją nawet dla nieistnienych zasobów.

Jeśli podano niepoprawny identyfikator magazynu źródłowego, ale prawidłowy adres URL magazynu kluczy, podczas ankiety będzie zgłaszany błąd.

Jeśli dodam tajemnice do istniejącego zestawu skal maszyny wirtualnej, czy tajemnice są wsadowane do istniejących maszyn wirtualnych, czy tylko do nowych?

Certyfikaty są dodawane do wszystkich maszyn wirtualnych, nawet tych istniejących. Jeśli właściwość upgradePolicy ustawiona dla właściwości upgradePolicy została ustawiona na wartość Ręcznie,certyfikat jest dodawany do maszyny wirtualnej podczas ręcznego aktualizowania maszyny wirtualnej.

Gdzie umieszczać certyfikaty dla maszyn wirtualnych systemu Linux?

Aby dowiedzieć się, jak wdrożyć certyfikaty dla maszyn wirtualnych systemu Linux, zobacz Wdrażanie certyfikatów na maszyny wirtualnej z magazynu kluczy zarządzanych przez klienta.

Jak dodać nowy certyfikat magazynu do nowego obiektu certyfikatu?

Aby dodać certyfikat magazynu do istniejącej tajemnicy, zobacz poniższy przykład programu PowerShell. Używaj tylko jednego tajnego obiektu.

$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

Co się stanie z certyfikatami w przypadku ponownego zaimportowania maszyny wirtualnej?

W przypadku ponownego zaimportowania maszyny wirtualnej certyfikaty są usuwane. Ponowne zaimportowanie powoduje usunięcie całego dysku systemu operacyjnego.

Co się stanie, jeśli usuniesz certyfikat z magazynu kluczy?

Jeśli klucz tajny zostanie usunięty z magazynu kluczy, a następnie zostanie uruchomiony dla wszystkich maszyn wirtualnych, a następnie rozpoczniesz je stop deallocate ponownie, wystąpi błąd. Błąd występuje, ponieważ klucz dostępu klienta musi pobrać sekrety z magazynu kluczy, ale nie. W tym scenariuszu można usunąć certyfikaty z modelu zestawu skal maszyn wirtualnych.

Składnik CRP nie pozostaje w tajemnicach klientów. Jeśli zostanie uruchomione dla wszystkich maszyn wirtualnych w zestawie skali maszyny stop deallocate wirtualnej, pamięć podręczna zostanie usunięta. W tym scenariuszu sekrety są pobierane z magazynu kluczy.

Ten problem nie występuje podczas skalowania, ponieważ w usłudze Azure Service Fabric (w modelu dzierżawy pojedynczej tkaniny) istnieje kopia z pamięci podręcznej.

Dlaczego muszę określić wersję certyfikatu, gdy używam magazynu kluczy?

Celem wymagania magazynu kluczy do określenia wersji certyfikatu jest wyczyszczenie użytkownikowi, jaki certyfikat jest wdrożony na jego maszyny wirtualnej.

Jeśli utworzysz maszyny wirtualnej, a następnie zaktualizujemy klucz tajny w magazynie kluczy, nowy certyfikat nie zostanie pobrany do maszyn wirtualnych. Ale wygląda na to, że odwołują się do niego maszyny wirtualne, a nowe maszyny wirtualne zyskają nową tajemnicę. Aby tego uniknąć, należy odwołać się do wersji tajnej.

Mój zespół pracuje z kilkoma certyfikatami, które są do nas rozpowszechniane jako klucze publiczne cer. Jakie jest zalecane podejście do wdrażania tych certyfikatów w zestawie skali maszyny wirtualnej?

Aby wdrożyć klucze publiczne cer w zestawie skali maszyny wirtualnej, możesz wygenerować plik pfx, który zawiera tylko pliki cer. Aby to zrobić, użyj funkcji X509ContentType = Pfx . Na przykład załaduj plik cer jako obiekt x509Certificate2 w C# lub PowerShell, a następnie wywołaj tę metodę.

Aby uzyskać więcej informacji, zobacz X509Certificate.Export Method (X509ContentType, String).

Jak przekazać certyfikaty jako ciągi base64?

Aby emulować przechodzący w postaci certyfikatu jako ciąg base64, możesz wyodrębnić najnowszy adres URL w szablonie Menedżer zasobów. W szablonie Menedżer zasobów uwzględnij następujący kod JSON:

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

Czy muszę zawijać certyfikaty w obiektach JSON w magazynach kluczy?

W przypadku zestawów skalowania maszyn wirtualnych i maszyn wirtualnych certyfikaty muszą być zawinięte w obiekty JSON.

Obsługujemy również aplikację typu zawartości/x-pkcs12.

Obecnie nie obsługujemy plików cer. Aby użyć plików cer, wyeksportuj je do kontenerów pfx.

Zgodność i zabezpieczenia

Czy skala maszyn wirtualnych jest zgodna ze standardem PCI?

Zestawy skal maszyn wirtualnych to cienkie warstwy interfejsu API na wierzchu usługi CRP. Oba składniki są częścią platformy obliczeniowej w drzewie usług platformy Azure.

Z perspektywy zgodności zestawy skal maszyn wirtualnych są podstawową częścią platformy obliczeniowej Azure. Współużytkują oni zespół, narzędzia, procesy, metodologię wdrażania, mechanizmy kontroli zabezpieczeń, kompilację w czasie rzeczywistym, monitorowanie, alertowanie i tak dalej, z samym centrum procesów biznesowych. Zestawy skal maszyn wirtualnych są zgodne z branżą kart płatniczych (PCI), ponieważ CRP jest częścią bieżących atestacji PCI Data Security Standard (DSS).

Aby uzyskać więcej informacji, zobacz Centrum zaufania firmy Microsoft.

Czy tożsamości zarządzane dla zasobów platformy Azure działają z zestawami skali maszyn wirtualnych?

Tak. Przykładowe szablony MSI są dostępne w szablonach Azure Quickstart dla systemu Linux i Windows.

Usuwanie

Czy blokady ustawione w wystąpieniach zestawu skal maszyn wirtualnych będą przestrzegać podczas usuwania wystąpień?

W portalu Azure Portal możesz usunąć pojedyncze wystąpienie lub usunąć zbiorczo, zaznaczając wiele wystąpień. Jeśli próbujesz usunąć jedno wystąpienie, które ma blokadę w miejscu, ta blokada jest cenna i nie będzie można usunąć wystąpienia. Jeśli jednak zbiorczo wybierzesz wiele wystąpień, a dowolne z tych wystąpień będzie mieć blokadę w miejscu, blokady nie zostaną zachowane i wszystkie wybrane wystąpienia zostaną usunięte.

W azure cli, you have the ability to delete an individual instance. Jeśli spróbujesz usunąć jedno wystąpienie, które ma blokadę w miejscu, blokady zostaną zachowane i nie będzie można usunąć tego wystąpienia.

Rozszerzenia

Jak usunąć rozszerzenie zestawu skal maszyn wirtualnych?

Aby usunąć rozszerzenie zestawu skal maszyn wirtualnych, użyj następującego przykładu programu PowerShell:

$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

Wartość extensionName możesz znaleźć w $vmss .

Czy istnieje przykład szablonu zestawu skal maszyn wirtualnych, który można zintegrować z dziennikami programu Azure Monitor?

Aby uzyskać przykład szablonu zestawu skal maszyn wirtualnych, który jest zintegrowany z dziennikami programu Azure Monitor, zobacz drugi przykład w temacie Wdrażanie klastrów usługi Azure Service Fabric i włączanie monitorowania za pomocą dzienników usługi Azure Monitor.

Jak dodać rozszerzenie do wszystkich maszyn wirtualnych w zestawie skali maszyny wirtualnej?

Jeśli zasady aktualizacji są ustawione na automatyczne, ponowne konfigurowanie szablonu przy użyciu nowych właściwości rozszerzenia aktualizuje wszystkie maszyny wirtualne.

Jeśli zasady aktualizacji są ustawione na ręczne, najpierw zaktualizuj rozszerzenie, a następnie ręcznie zaktualizuj wszystkie wystąpienia w maszyny wirtualne.

Jeśli rozszerzenia skojarzone z istniejącym zestawem skali maszyn wirtualnych zostaną zaktualizowane, czy dotyczy to istniejących maszyn wirtualnych?

Jeśli definicja rozszerzenia w modelu zestawu skal maszyn wirtualnych jest aktualizowana, a właściwość upgradePolicy jest ustawiona na wartość automatyczną,aktualizuje ona maszyny wirtualne. Jeśli właściwość upgradePolicy jest ustawiona na ręcznie,rozszerzenia są oflagowyane jako nie pasujące do modelu.

Czy rozszerzenia są uruchamiane ponownie, gdy istniejący komputer jest zbędny lub ponownie zaimportowany?

Jeśli istniejąca maszyny wirtualnej jest usługą w usłudze, jest ona wyświetlana jako ponowne uruchomienie, a rozszerzenia nie są ponownie uruchamiane. W przypadku ponownego zaimportowania maszyny wirtualnej proces ten w podobny sposób zastępuje dysk systemu operacyjnego obrazem źródłowym. Każda specjalizacja z najnowszego modelu, taka jak rozszerzenia, jest uruchamiana ponownie.

Jak dołączyć do skali maszyny wirtualnej ustawionej na domenę usługi Active Directory?

Aby dołączyć do skali maszyny wirtualnej ustawionej na domenę usługi Active Directory (AD), możesz zdefiniować rozszerzenie.

Aby zdefiniować rozszerzenie, użyj właściwości JsonADDomainExtension:

"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')]"
                }
            }
        }
    ]
}

Moje rozszerzenie skalowania maszyny wirtualnej próbuje zainstalować coś, co wymaga ponownego uruchomienia komputera.

Jeśli rozszerzenie zestawu skal dla maszyn wirtualnych próbuje zainstalować coś, co wymaga ponownego uruchomienia komputera, możesz użyć rozszerzenia Azure Automation Desired State Configuration (Automation DSC). Jeśli system operacyjny jest Windows Server 2012 R2, azure pozysuje konfigurację programu Windows Management Framework (WMF) 5.0, ponownie uruchomi się, a następnie kontynuuje konfigurację.

Jak wykonać skrypt niestandardowy hostowany na prywatnym koncie magazynu?

Aby wykonać skrypt niestandardowy hostowany na prywatnym koncie magazynu, skonfiguruj chronione ustawienia przy użyciu klucza i nazwy konta magazynu. Aby uzyskać więcej informacji, zobacz Rozszerzenie skryptu niestandardowego.

Hasła

Jak zresetować hasło dla maszyn wirtualnych w zestawie skali maszyny wirtualnej?

Istnieją dwa główne sposoby zmiany hasła dla maszyn wirtualnych w zestawach skalowania.

  • Zmień model zestawu skal maszyny wirtualnej bezpośrednio. Dostępny w interfejsie API 2017-12-01 i nowszych.

    Zaktualizuj poświadczenia administratora bezpośrednio w modelu zestawu skali (na przykład za pomocą Eksploratora zasobów platformy Azure, programu PowerShell lub interfejsu cli). Po zaktualizowania zestawu skali wszystkie nowe maszyny wirtualne mają nowe poświadczenia. Istniejące maszyny wirtualne mają nowe poświadczenia tylko wtedy, gdy zostaną ponownie zaimportowane.

  • Zresetuj hasło, używając rozszerzeń dostępu maszyny wirtualnej. Upewnij się, że są spełnione wymagania dotyczące haseł zgodnie z opisem w tym miejscu.

  • Korzystanie z rozszerzenia dostępu do maszyny wirtualnej nie wymaga ponownego zaimportowania danych, ponieważ to rozszerzenie nie aktualizuje hasła w modelu. Rozszerzenie uruchamia skrypt, aby dołączyć hasło do hasła lub do pliku klucza SSH. Rozszerzenie nie usuwa oryginalnego klucza SSH.

    Użyj następującego przykładu programu PowerShell, aby Windows skalę maszyny wirtualnej:

    $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
    

    Użyj następującego przykładu programu PowerShell dla zestawu skal maszyn wirtualnych systemu Linux:

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

Sieć

Czy można przypisać grupę zabezpieczeń sieciowych (NSG, Network Security Group) do zestawu skali, tak aby dotyczyła wszystkich komputerów PC maszyny wirtualnej w zestawie?

Tak. Grupę zabezpieczeń sieci można zastosować bezpośrednio do zestawu skali, odwołując się do niego w sekcji networkInterfaceConfigurations profilu sieciowego. Przykład:

"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'))]"
                }
            }
        }
    ]
}

Jak zamienić program VIP na zestawy skal maszyn wirtualnych w tej samej subskrypcji i w tym samym regionie?

Jeśli masz dwa zestawy skal maszyny wirtualnej z frontonem Azure Load Balancer i znajdują się one w tej samej subskrypcji i regionie, możesz przesunąć publiczne adresy IP z każdego z nich i przypisać je do drugiego. Zobacz Na przykład: Zamiana VIP: Wdrożenie niebieskozielone w usłudze Azure Resource Manager. Oznacza to opóźnienie, chociaż zasoby są przydzielane/przydzielane na poziomie sieci. Szybszym rozwiązaniem jest użycie bramy aplikacji Azure z dwoma pulami zaplecza i regułą routingu. Ewentualnie możesz hostować aplikację za pomocą usługi aplikacji Azure, która zapewnia obsługę szybkiego przełączania między otagowaniem a ustawieniami produkcyjnymi.

Jak określić zakres prywatnych adresów IP do użycia w statycznej alokacji prywatnych adresów IP?

Adresy IP są wybierane z specify przez Ciebie podsieci.

Metoda alokacji zestawu adresów IP dla skal maszyn wirtualnych jest zawsze "dynamiczna", ale nie oznacza to, że te adresy IP mogą ulec zmianie. W tym przypadku określenie "dynamiczne" oznacza tylko, że nie określa się adresu IP w żądaniu PUT. Określ zestaw statyczny za pomocą podsieci.

Jak wdrożyć skalę maszyny wirtualnej ustawioną na istniejącą sieć wirtualną Azure?

Aby wdrożyć skalę maszyny wirtualnej ustawioną w istniejącej sieci wirtualnej Azure, zobacz Wdrażanie zestawu skal maszyn wirtualnych w istniejącej sieci wirtualnej.

Czy można używać zestawów skalowania z trybem przyspieszonym sieci?

Tak. Aby użyć trybów przyspieszonych sieci, ustaw wartość enableAcceleratedNetworking na true w ustawieniach networkInterfaceConfigurations zestawu skali. Na przykład

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

Jak skonfigurować serwery DNS używane w zestawie skali?

Aby utworzyć zestaw skal dla maszyn wirtualnych z niestandardową konfiguracją DNS, dodaj pakiet dnsSettings JSON do sekcji skalowania zestawu networkInterfaceConfigurations. Przykład:

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

Jak skonfigurować zestaw skal w celu przypisania publicznego adresu IP do każdej maszyny wirtualnej?

Aby utworzyć zestaw skal maszyny wirtualnej, który przypisuje publiczny adres IP każdej maszyny wirtualnej, upewnij się, że wersja interfejsu API pakietu Microsoft.Compute/virtualMachineScaleSets to 2017-03-30, a następnie dodaj pakiet JSON publicipaddressconfiguration do sekcji set ipConfigurations (Konfiguracje skalowania). Przykład:

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

Czy mogę skonfigurować zestaw skali do pracy z wieloma bramami aplikacji?

Tak. Identyfikatory zasobów dla wielu pul adresów zaplecza bramy aplikacji można dodać do listy applicationGatewayBackendAddressPools w sekcji ipConfigurations swojego profilu sieciowego zestawu skali.

Skala

W takim przypadku należy utworzyć zestaw skalowania maszyny wirtualnej z mniej niż dwoma maszynami wirtualnymi?

Jednym z powodów utworzenia zestawu skal maszyn wirtualnych z mniej niż dwoma maszynami wirtualnymi będzie użycie właściwości elastycznej zestawu skali maszyny wirtualnej. Można na przykład wdrożyć zestaw skal maszyny wirtualnej z zerowym zestawem maszyn wirtualnych, aby zdefiniować swoją infrastrukturę bez ponoszenia kosztów pracy maszyny wirtualnej. Następnie, gdy wszystko będzie gotowe do wdrożenia maszyn wirtualnych, zwiększ "wydajność" skali maszyny wirtualnej ustawionej na liczbę wystąpień produkcyjnych.

Innym powodem tworzenia zestawu skalowania maszyny wirtualnej z mniej niż dwiema maszynami wirtualnymi jest to, że należy korzystać z mniejszej ilości informacji o dostępności niż w przypadku używania zestawu dostępności z osobnymi maszynami wirtualnymi. Zestawy skali maszyn wirtualnych zapewniają sposób pracy z nieporóżniaymi jednostkami obliczeniowymi, które są bardzo zdublowane. Ta ujednolikość stanowi kluczowy element odróżniacy zestawy skali maszyn wirtualnych od zestawów dostępności. Wiele obciążeń bez stanu nie śledzi poszczególnych jednostek. Jeśli obciążenie zostanie porzucane, możesz skalować w dół do jednej jednostki obliczeniowej, a następnie skalować je do wielu w przypadku zwiększenia obciążenia pracą.

Jak zmienić liczbę maszyn wirtualnych w zestawie skali maszyny wirtualnej?

Aby zmienić liczbę maszyn wirtualnych na skali maszyny wirtualnej ustawionej w portalu Azure Portal, w sekcji właściwości zestawu skalowania maszyn wirtualnych kliknij pole "Skalowanie" i użyj suwaka.

Jak definiować alerty niestandardowe po osiągnięciu określonych progów?

Obsługa alertów dla określonych progów jest nieco elastyczna. Można na przykład zdefiniować dostosowane ustawienia sieci Web. Poniższy przykład webhook jest na podstawie szablonu Menedżera zasobów:

{
    "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"
                        }
                    }
                ]
            }
        ]
    }
}

Poprawianie poprawek i operacje

Czy można utworzyć zestaw skali w istniejącej grupie zasobów?

Tak, można utworzyć zestaw skali w istniejącej grupie zasobów.

Czy można przenieść zestaw skal do innej grupy zasobów?

Tak, można przenieść skalę ustawianą zasoby do nowej grupy zasobów lub subskrypcji.

Jak zaktualizować skalę maszyny wirtualnej do nowego obrazu? Jak zarządzać poprawianiami?

Aby zaktualizować skalę maszyny wirtualnej do nowego obrazu i zarządzać poprawkami, zobacz Uaktualnianie zestawu skal maszyn wirtualnych.

Czy mogę ponownie zresetować maszyny wirtualnej bez zmieniania obrazu? Oznacza to, że chcę zresetować maszyny wirtualnej do ustawień fabrycznych, a nie do nowego obrazu.

Tak, można ponownie zresetować maszyny wirtualnej bez zmieniania obrazu. Jeśli jednak skala maszyny wirtualnej ustawi odwołania do obrazu platformy za pomocą , maszyny wirtualnej można podczas połączenia zaktualizować system operacyjny do version = latest nowszego. reimage

Czy można zintegrować zestawy skal z dziennikami programu Azure Monitor?

Tak, możesz zainstalować rozszerzenie programu Azure Monitor w zestawie skal dla maszyn wirtualnych. Oto przykład usługi Azure CLI:

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'}"

Wymagany klucz obszaru roboczego (workspaceId) i workspaceKey (Klucz obszaru roboczego) można znaleźć w obszarze roboczym analizy dziennika w usłudze Azure Portal. Na stronie Przegląd kliknij kafelek Ustawienia projektu. Kliknij kartę Połączone źródła u góry.

Uwaga

Jeśli twoja skala ustawiona dla ustawienia upgradePolicy jest ustawiona na wartość Ręcznie, musisz zastosować rozszerzenie do wszystkich maszyn wirtualnych w zestawie, wywołując na nich uaktualnienie. W identyfikatorze CLI będzie to az maszyny wirtualnej update-instances.

Uwaga

Ten artykuł został ostatnio zaktualizowany tak, aby zamiast analizy dzienników używać terminu Azure Monitor. Dane dziennika są nadal przechowywane w obszarze roboczym analizy dziennika oraz są nadal zbierane i analizowane przez tę samą usługę analizy dziennika. Aktualizujemy terminologia, aby lepiej odzwierciedlać rolę dzienników w Azure Monitorze. Aby uzyskać szczegółowe informacje, zobacz Zmiany terminologii dotyczącej usługi Azure Monitor.

Rozwiązywanie problemów

Jak włączyć diagnostykę rozruchu?

Aby włączyć diagnostykę rozruchu, najpierw utwórz konto magazynu. Następnie umieść ten blok JSON w zestawie skali maszyny wirtualnej virtualMachineProfilei zaktualizuj zestaw skali maszyny wirtualnej:

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

Po utworzeniu nowej maszyny wirtualnej właściwość InstanceView maszyny wirtualnej wyświetla szczegóły zrzutu ekranu i tak dalej. Oto przykład:

"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"
}

Właściwości maszyny wirtualnej

Jak uzyskać informacje o właściwościach każdej maszyny wirtualnej bez konieczności dzwonienia? Na przykład jak uzyskać domenę błędu dla każdej z 100 maszyn wirtualnych w zestawie skali maszyny wirtualnej?

Aby uzyskać informacje o właściwościach dla każdej maszyny wirtualnej bez wykonywania wielu połączeń, możesz wywołać, wykonując ListVMInstanceViews interfejs API REST na następującym GET identyfikatorze URI zasobu:

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

Czy można przekazać różne argumenty rozszerzenia do różnych maszyn wirtualnych w zestawie skali maszyny wirtualnej?

Nie, nie można przekazać różnych argumentów rozszerzenia do różnych maszyn wirtualnych w zestawie skali maszyny wirtualnej. Rozszerzenia mogą jednak działać na podstawie unikatowych właściwości maszyny wirtualnej, na których są uruchomione, takich jak nazwa komputera. Rozszerzenia mogą również zwracać metadane wystąpienia zapytania, http://169.254.169.254 aby uzyskać więcej informacji na temat maszyny wirtualnej.

Dlaczego istnieją przerwy między ustawieniami nazw maszyn wirtualnych i identyfikatorami maszyny wirtualnej w skali maszyny wirtualnej? Na przykład: 0, 1, 3...

Istnieją odstępy między ustawieniami nazw maszyn wirtualnych wirtualnych i identyfikatorami maszyny wirtualnej, ponieważ dla właściwości overprovision ustawiono skalę maszyny wirtualnej na wartość domyślną True (Prawda). Jeśli dla ustawienia overprovisioning ustawiono wartość True (Prawda),zostanie utworzonych więcej maszyn wirtualnych, niż proszono. Następnie usuwane są dodatkowe maszyny wirtualne. W tym przypadku zyskasz większą niezawodność wdrożenia, ale kosztem ciągłego nazewnictwa i ciągłych reguł translacji adresów sieciowych.

Tę właściwość można ustawić na wartość false (fałsz). W przypadku małych zestawów skal maszyn wirtualnych nie wpływa to w istotny sposób na niezawodność wdrożenia.

Jaka jest różnica między usuwaniem maszyny wirtualnej w zestawie skal maszyny wirtualnej a jej lokalizowaniem? Kiedy wybrać jedną z nich?

Główna różnica między usuwaniem maszyny wirtualnej w zestawie skal maszyny wirtualnej a jej lokalizowaniem polega na tym, że nie usuwa on wirtualnych dyskietek twardych deallocate (VHDS). Z uruchomionym programem są skojarzone koszty magazynowania stop deallocate . Możesz użyć jednej lub drugiej z następujących przyczyn:

  • Chcesz przestać płacić za koszty obliczania, ale chcesz zachować stan dysku maszyn wirtualnych.
  • Chcesz szybciej uruchomić zestaw maszyn wirtualnych, niż skalować zestaw skalowania maszyn wirtualnych.
    • W tym scenariuszu można utworzyć własny aparat skalowania automatycznego, który ma mieć szybszą skalę od końca do końca.
  • Masz zestaw skali maszyny wirtualnej, który jest nierówno rozłożony we wszystkich domenach błędów lub zaktualizuj domeny. Może to być spowodowane selektywnym usunięciem maszyn wirtualnych lub usunięciem maszyn wirtualnych po przesłoceniu. Uruchomione, a następnie na skali maszyny wirtualnej, równomiernie rozpowszechniają maszyny wirtualne między domenami błędów stop deallocatestart lub aktualizują domeny.

Jak utworzyć migawkę wystąpienia zestawu skal maszyny wirtualnej?

Utwórz migawkę na postawie zestawu skali maszyny wirtualnej.

$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

Tworzenie dysku zarządzanego z migawki.

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