Szekvenciabővítmény üzembe helyezése Virtual Machine Scale Sets
Az Azure-beli virtuálisgép-bővítmények olyan képességeket biztosítanak, mint az üzembe helyezés utáni konfiguráció és felügyelet, a monitorozás, a biztonság és egyebek. Az éles környezetek általában a virtuálisgép-példányokhoz konfigurált több bővítmény kombinációját használják a kívánt eredmények eléréséhez.
Ha több bővítményt használ egy virtuális gépen, fontos meggyőződni arról, hogy az azonos operációsrendszer-erőforrásokat igénylő bővítmények nem próbálják egyidejűleg beszerezni ezeket az erőforrásokat. Egyes bővítmények más bővítményeken is alapulnak a szükséges konfigurációk, például a környezeti beállítások és a titkos kódok biztosításához. A megfelelő sorrend és sorrend megadása nélkül a függő bővítmények üzembe helyezése meghiúsulhat.
Ez a cikk azt ismerteti, hogyan konfigurálhatók a bővítmények a virtuálisgép-példányokhoz a Virtual Machine Scale Sets.
Előfeltételek
Ez a cikk a következőket feltételezi:
Mikor érdemes bővítményszekvenálást használni?
A méretezési csoportok esetében nem kötelező a bővítmények szekvenálása, és ha nincs megadva, a bővítmények bármilyen sorrendben kiépíthetők egy méretezésicsoport-példányon.
Ha például a méretezési csoport modellje két bővítményt (ExtensionA és ExtensionB) határoz meg a modellben, akkor a következő kiépítési sorozatok valamelyike fordulhat elő:
- ExtensionA –> ExtensionB
- ExtensionB –> ExtensionA
Ha az alkalmazás megköveteli, hogy az A bővítmény mindig a B bővítmény előtt legyen kiépítve, akkor a bővítmények sorrendbe állítását az ebben a cikkben leírtak szerint kell használnia. A bővítmények sorrendbe állításával most csak egy sorozat fog történni:
- ExtensionA – > ExtensionB
A definiált kiépítési sorrendben nem megadott bővítmények bármikor kiépíthatók, beleértve a megadott sorrend előtt, után vagy alatt is. A bővítmények sorrendje csak azt határozza meg, hogy egy adott bővítmény egy másik bővítmény után lesz kiépítve. Ez nem befolyásolja a modellben definiált egyéb bővítmények kiépítését.
Ha például a méretezési csoport modellje három bővítményt (A bővítmény, B bővítmény és C kiterjesztés) ad meg a modellben, és a C bővítmény az A bővítmény után lesz kiépítve, akkor az alábbi kiépítési sorozatok bármelyike történhet:
- ExtensionA –> ExtensionC –> ExtensionB
- ExtensionB –> ExtensionA –> ExtensionC
- ExtensionA –> ExtensionB –> ExtensionC
Ha gondoskodnia kell arról, hogy a megadott bővítményütemezés végrehajtása közben ne legyen más bővítmény kiépítve, javasoljuk, hogy a méretezési csoport modelljében minden bővítményt szekvenáljon. A fenti példában a B bővítmény úgy állítható be, hogy a C bővítmény után legyen kiépítve, így csak egy sorozat fordulhat elő:
- ExtensionA –> ExtensionC –> ExtensionB
Bővítmények sorrendbe állításának használata
A bővítmények kiépítésének sorrendbe állításához frissítenie kell a bővítménydefiníciót a méretezési csoport modelljében, hogy tartalmazza a "provisionAfterExtensions" tulajdonságot, amely elfogadja a bővítménynevek tömböt. A tulajdonságtömbértékben említett bővítményeket teljes mértékben definiálni kell a méretezési csoport modelljében.
Sablon üzembe helyezése
Az alábbi példa egy sablont határoz meg, amelyben a méretezési csoport három bővítménnyel rendelkezik ( ExtensionA, ExtensionB és ExtensionC ), hogy a bővítmények a sorrendben legyenek kiépítve:
- ExtensionA –> ExtensionB –> ExtensionC
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "ExtensionA",
"properties": {
"publisher": "ExtensionA.Publisher",
"settings": {},
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"type": "ExtensionA"
}
},
{
"name": "ExtensionB",
"properties": {
"provisionAfterExtensions": [
"ExtensionA"
],
"publisher": "ExtensionB.Publisher",
"settings": {},
"typeHandlerVersion": "2.0",
"autoUpgradeMinorVersion": true,
"type": "ExtensionB"
}
},
{
"name": "ExtensionC",
"properties": {
"provisionAfterExtensions": [
"ExtensionB"
],
"publisher": "ExtensionC.Publisher",
"settings": {},
"typeHandlerVersion": "3.0",
"autoUpgradeMinorVersion": true,
"type": "ExtensionC"
}
}
]
}
}
Mivel a "provisionAfterExtensions" tulajdonság a bővítménynevek tömböt fogad el, a fenti példa módosítható úgy, hogy az ExtensionC az ExtensionA és az ExtensionB után legyen kiépítve, de az ExtensionA és az ExtensionB között nincs szükség rendezésre. Ehhez a forgatókönyvhöz a következő sablon használható:
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "ExtensionA",
"properties": {
"publisher": "ExtensionA.Publisher",
"settings": {},
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"type": "ExtensionA"
}
},
{
"name": "ExtensionB",
"properties": {
"publisher": "ExtensionB.Publisher",
"settings": {},
"typeHandlerVersion": "2.0",
"autoUpgradeMinorVersion": true,
"type": "ExtensionB"
}
},
{
"name": "ExtensionC",
"properties": {
"provisionAfterExtensions": [
"ExtensionA","ExtensionB"
],
"publisher": "ExtensionC.Publisher",
"settings": {},
"typeHandlerVersion": "3.0",
"autoUpgradeMinorVersion": true,
"type": "ExtensionC"
}
}
]
}
}
REST API
Az alábbi példa egy ExtensionC nevű új bővítményt ad hozzá egy méretezésicsoport-modellhez. Az ExtensionC függőségekkel rendelkezik az ExtensionA-ra és az ExtensionB-re, amelyek már definiálva vannak a méretezési csoport modelljében.
PUT on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/extensions/ExtensionC?api-version=2018-10-01`
{
"name": "ExtensionC",
"properties": {
"provisionAfterExtensions": [
"ExtensionA","ExtensionB"
],
"publisher": "ExtensionC.Publisher",
"settings": {},
"typeHandlerVersion": "3.0",
"autoUpgradeMinorVersion": true,
"type": "ExtensionC"
}
}
Ha az ExtensionC korábban lett definiálva a méretezési csoport modelljében, és most hozzá szeretné adni a függőségeit, végrehajthat egy PATCH
elemet a már üzembe helyezett bővítmény tulajdonságainak szerkesztéséhez.
PATCH on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/extensions/ExtensionC?api-version=2018-10-01`
{
"properties": {
"provisionAfterExtensions": [
"ExtensionA","ExtensionB"
]
}
}
A meglévő méretezésicsoport-példányok módosításai a következő frissítéskor lesznek alkalmazva.
Azure PowerShell
Az Add-AzVmssExtension parancsmaggal adja hozzá az Application Health bővítményt a méretezési csoport modelldefiníciójához. A bővítmények szekvenálásához az Az PowerShell 1.2.0-s vagy újabb verziója szükséges.
Az alábbi példa hozzáadja az Application Health bővítményt egy extensionProfile
Windows-alapú méretezési csoport méretezési csoportjának modelljéhez. Az Application Health bővítmény a méretezési csoportban már definiált egyéni szkriptbővítmény kiépítése után lesz kiépítve.
# Define the scale set variables
$vmScaleSetName = "myVMScaleSet"
$vmScaleSetResourceGroup = "myVMScaleSetResourceGroup"
# Define the Application Health extension properties
$publicConfig = @{"protocol" = "http"; "port" = 80; "requestPath" = "/healthEndpoint"};
$extensionName = "myHealthExtension"
$extensionType = "ApplicationHealthWindows"
$publisher = "Microsoft.ManagedServices"
# Get the scale set object
$vmScaleSet = Get-AzVmss `
-ResourceGroupName $vmScaleSetResourceGroup `
-VMScaleSetName $vmScaleSetName
# Add the Application Health extension to the scale set model
Add-AzVmssExtension -VirtualMachineScaleSet $vmScaleSet `
-Name $extensionName `
-Publisher $publisher `
-Setting $publicConfig `
-Type $extensionType `
-TypeHandlerVersion "1.0" `
-ProvisionAfterExtension "CustomScriptExtension" `
-AutoUpgradeMinorVersion $True
# Update the scale set
Update-AzVmss -ResourceGroupName $vmScaleSetResourceGroup `
-Name $vmScaleSetName `
-VirtualMachineScaleSet $vmScaleSet
Azure CLI 2.0
Az az vmss extension set használatával adja hozzá az Application Health bővítményt a méretezési csoport modelldefinícióhoz. A bővítmények sorrendbe állításához az Azure CLI 2.0.55-ös vagy újabb verziója szükséges.
Az alábbi példa hozzáadja az Application Health bővítményt egy Windows-alapú méretezési csoport méretezésicsoport-modelljéhez. Az Application Health bővítmény a méretezési csoportban már definiált egyéni szkriptbővítmény kiépítése után lesz kiépítve.
az vmss extension set \
--name ApplicationHealthWindows \
--publisher Microsoft.ManagedServices \
--version 1.0 \
--resource-group <myVMScaleSetResourceGroup> \
--vmss-name <myVMScaleSet> \
--provision-after-extensions CustomScriptExtension \
--settings ./extension.json
Hibaelhárítás
Nem tud bővítményt hozzáadni függőségekkel?
- Győződjön meg arról, hogy a provisionAfterExtensions paraméterben megadott bővítmények definiálva vannak a méretezési csoport modelljében.
- Győződjön meg arról, hogy nincsenek körkörös függőségek. Például a következő sorozat nem engedélyezett: ExtensionA –> ExtensionB –> ExtensionC –> ExtensionA
- Győződjön meg arról, hogy a függőségeket használó bővítmények "settings" tulajdonsággal rendelkeznek a "properties" bővítmény alatt. Ha például a ExtentionB-t az ExtensionA után kell kiépíteni, akkor az ExtensionA -nak a "tulajdonságok" területen a "settings" mezővel kell rendelkeznie. Üres "beállítások" tulajdonságot is megadhat, ha a bővítmény nem írja elő a szükséges beállításokat.
Nem tudja eltávolítani a bővítményeket?
Győződjön meg arról, hogy az eltávolított bővítmények nem szerepelnek a provisionAfterExtensions listában más bővítmények esetében.
Következő lépések
Megtudhatja, hogyan helyezheti üzembe alkalmazását Virtual Machine Scale Sets.