Megosztás a következőn keresztül:


Azure Batch-készlet létrehozása az operációs rendszer (OS) automatikus frissítésével

Azure Batch-készlet létrehozásakor kiépítheti a készletet olyan csomópontokkal, amelyeken engedélyezve van az automatikus operációsrendszer-frissítés. Ez a cikk bemutatja, hogyan állíthat be Batch-készletet az automatikus operációsrendszer-frissítéssel.

Miért érdemes az automatikus operációsrendszer-frissítést használni?

Az automatikus operációsrendszer-frissítés az operációs rendszer automatikus frissítési stratégiájának és vezérlésének megvalósításához használható az Azure Batch-készletekben. Az automatikus operációs rendszer frissítésének néhány oka:

  • Biztonság. Az automatikus operációsrendszer-frissítés biztosítja a biztonsági rések és biztonsági problémák időben történő javítását az operációs rendszer lemezképén a számítási erőforrások biztonságának javítása érdekében. Segít megakadályozni, hogy a potenciális biztonsági rések fenyegetést jelentenek az alkalmazásokra és az adatokra.
  • Minimális rendelkezésre állási zavar. Az automatikus operációsrendszer-frissítéssel minimalizálható a számítási csomópontok rendelkezésre állási zavara az operációs rendszer frissítése során. Ez a feladatütemezés-tudatos frissítési halasztás és a gördülő frissítések támogatása révén érhető el, biztosítva, hogy a számítási feladatok minimális fennakadást tapasztalnak.
  • Rugalmasság. Az automatikus operációsrendszer-frissítés lehetővé teszi az operációs rendszer automatikus frissítési stratégiájának konfigurálását, beleértve a százalékos alapú frissítési koordinációt és a visszaállítás támogatását. Ez azt jelenti, hogy testre szabhatja a frissítési stratégiát, hogy megfeleljen az adott teljesítmény- és rendelkezésre állási követelményeknek.
  • Vezérlő. Az automatikus operációsrendszer-frissítés lehetővé teszi az operációs rendszer frissítési stratégiájának vezérlését a biztonságos, számítási feladatokkal kapcsolatos frissítési üzemelő példányok biztosítása érdekében. A szabályzatkonfigurációkat testre szabhatja a szervezet igényeinek megfelelően.

Összefoglalva, az automatikus operációsrendszer-frissítés használata segít javítani a biztonságot, minimalizálni a rendelkezésre állási zavarokat, és nagyobb felügyeletet és rugalmasságot biztosítani a számítási feladatok számára.

Hogyan működik az automatikus operációsrendszer-frissítés?

A rendszerképek frissítésekkor az Azure Batch-készletben lévő virtuális gépek nagyjából ugyanazt a munkafolyamatot fogják követni, mint a VirtualMachineScaleSets. Ha többet szeretne megtudni a VirtualMachineScaleSets automatikus operációsrendszer-frissítési folyamatának részletes lépéseiről, tekintse meg a VirtualMachineScaleSet oldalt.

Ha azonban az automaticOSUpgradePolicy.osRollingUpgradeDeferral értéke "true" (igaz), és a frissítés akkor válik elérhetővé, ha egy kötegelt csomópont aktívan futtat tevékenységeket, a frissítés késleltetve lesz, amíg az összes tevékenység befejeződik a csomóponton.

Feljegyzés

Ha egy készlet engedélyezte az osRollingUpgradeDeferral rendszert, a csomópontok frissítési állapotként jelennek meg a frissítési folyamat során. Vegye figyelembe, hogy a frissítési állapot csak a 2024-02-01-es vagy újabb API-verzió használatakor jelenik meg. Ha egy régi API-verziót használ a GetTVM/ListTVM meghívásához, a csomópont újraindul a frissítés során.

Támogatott operációsrendszer-rendszerképek

Az automatikus frissítéshez jelenleg csak bizonyos operációsrendszer-platformképek támogatottak. A részletes képek listáját a VirtualMachineScaleSet oldaláról érheti el.

Követelmények

  • A rendszerkép verziótulajdonságának a legújabb értékre kell állítania.
  • A Batch Management API-hoz használja az API 2024-02-01-es vagy újabb verzióját. A Batch Service API-hoz használja az API 2024-02-01.19.0-s vagy újabb verzióját.
  • Győződjön meg arról, hogy a készletben megadott külső erőforrások elérhetők és frissíthetők. Ilyenek például az SAS URI a virtuálisgép-bővítmény tulajdonságainak hasznos adatainak rendszerindításához, a tárfiókban lévő hasznos adatok, a modell titkos kulcsainak hivatkozása stb.
  • Ha a virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates tulajdonságot használja, ennek a tulajdonságnak "false" értékre kell állítania a készletdefinícióban. Az enableAutomaticUpdates tulajdonság lehetővé teszi a virtuális gépeken belüli javításokat, ahol a "Windows Update" operációsrendszer-javításokat alkalmaz az operációsrendszer-lemez cseréje nélkül. Ha engedélyezve van az operációsrendszer-rendszerkép automatikus frissítése, nincs szükség további javítási folyamatra a Windows Update-ben.

Egyéni rendszerképek további követelményei

  • Amikor a rendszerkép új verzióját közzéteszi és replikálja a készlet régiójába, a virtuális gépek az Azure Compute Gallery rendszerképének legújabb verziójára lesznek frissítve. Ha az új rendszerkép nem replikálódik arra a régióra, ahol a készlet telepítve van, a virtuálisgép-példányok nem lesznek frissítve a legújabb verzióra. A regionális rendszerkép-replikáció lehetővé teszi az új rendszerkép bevezetésének szabályozását a virtuális gépeken.
  • Az új képverziót nem szabad kizárni a katalóguskép legújabb verziójából. A katalógus lemezképének legújabb verziójából kizárt képverziók nem lesznek automatikus operációsrendszer-rendszerkép-frissítéssel bevezetve.

Automatikus operációsrendszer-frissítés konfigurálása

Ha automatikus operációsrendszer-frissítéseket szeretne implementálni egy készleten belül, elengedhetetlen, hogy konfigurálja az UpgradePolicy mezőt a készletlétrehozási folyamat során. Az automatikus operációsrendszer-rendszerkép-frissítések konfigurálásához győződjön meg arról, hogy az automaticOSUpgradePolicy.enableAutomaticOSUpgrade tulajdonság értéke "true" (igaz) értékre van állítva a készletdefinícióban.

Feljegyzés

A Frissítési szabályzat mód és az automatikus operációsrendszer-frissítési szabályzat külön beállítások, és az Azure Batch által kiépített méretezési csoport különböző aspektusait vezérli. A Frissítési házirend mód határozza meg, hogy mi történik a méretezési csoportban lévő meglévő példányokkal. Az automatikus operációsrendszer-frissítési szabályzat enableAutomaticOSUpgrade azonban az operációsrendszer-lemezképre vonatkozik, és nyomon követi a rendszerkép közzétevője által végrehajtott módosításokat, és meghatározza, hogy mi történik a rendszerkép frissítésekor.

REST API

Az alábbi példa bemutatja, hogyan hozhat létre készletet az automatikus operációsrendszer-frissítéssel a REST API-val:

PUT https://management.azure.com/subscriptions/<subscriptionid>/resourceGroups/<resourcegroupName>/providers/Microsoft.Batch/batchAccounts/<batchaccountname>/pools/<poolname>?api-version=2024-02-01

Kérelem törzse

{
    "name": "test1",
    "type": "Microsoft.Batch/batchAccounts/pools",
    "parameters": {
        "properties": {
            "vmSize": "Standard_d4s_v3",
            "deploymentConfiguration": {
                "virtualMachineConfiguration": {
                    "imageReference": {
                        "publisher": "MicrosoftWindowsServer",
                        "offer": "WindowsServer",
                        "sku": "2019-datacenter-smalldisk",
                        "version": "latest"
                    },
                    "nodePlacementConfiguration": {
                        "policy": "Zonal"
                    },
                    "nodeAgentSKUId": "batch.node.windows amd64",
                    "windowsConfiguration": {
                        "enableAutomaticUpdates": false
                    }
                }
            },
            "scaleSettings": {
                "fixedScale": {
                    "targetDedicatedNodes": 2,
                    "targetLowPriorityNodes": 0
                }
            },
            "upgradePolicy": {
                "mode": "Automatic",
                "automaticOSUpgradePolicy": {
                    "disableAutomaticRollback": true,
                    "enableAutomaticOSUpgrade": true,
                    "useRollingUpgradePolicy": true,
                    "osRollingUpgradeDeferral": true
                },
                "rollingUpgradePolicy": {
                    "enableCrossZoneUpgrade": true,
                    "maxBatchInstancePercent": 20,
                    "maxUnhealthyInstancePercent": 20,
                    "maxUnhealthyUpgradedInstancePercent": 20,
                    "pauseTimeBetweenBatches": "PT0S",
                    "prioritizeUnhealthyInstances": false,
                    "rollbackFailedInstancesOnPolicyBreach": false
                }
            }
        }
    }
}

SDK (C#)

Az alábbi kódrészlet egy példát mutat be arra, hogyan hozhat létre automatikus operációsrendszer-frissítési készletet a Batch .NET-ügyfélkódtár használatával C#-kódokon keresztül. A Batch .NET-tel kapcsolatos további részletekért tekintse meg a referenciadokumentációt.

public async Task CreateUpgradePolicyPool()
{
     // Authenticate
     var clientId = Environment.GetEnvironmentVariable("CLIENT_ID");
     var clientSecret = Environment.GetEnvironmentVariable("CLIENT_SECRET");
     var tenantId = Environment.GetEnvironmentVariable("TENANT_ID");
     var subscriptionId = Environment.GetEnvironmentVariable("SUBSCRIPTION_ID");
     ClientSecretCredential credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
     ArmClient client = new ArmClient(credential, subscriptionId);
 
     // Get an existing Batch account
     string resourceGroupName = "testrg";
     string accountName = "testaccount";
     ResourceIdentifier batchAccountResourceId = BatchAccountResource.CreateResourceIdentifier(subscriptionId, resourceGroupName, accountName);
     BatchAccountResource batchAccount = client.GetBatchAccountResource(batchAccountResourceId);
 
     // get the collection of this BatchAccountPoolResource
     BatchAccountPoolCollection collection = batchAccount.GetBatchAccountPools();
 
     // Define the pool
     string poolName = "testpool";
     BatchAccountPoolData data = new BatchAccountPoolData()
     {
         VmSize = "Standard_d4s_v3",
         DeploymentConfiguration = new BatchDeploymentConfiguration()
         {
             VmConfiguration = new BatchVmConfiguration(new BatchImageReference()
             {
                 Publisher = "MicrosoftWindowsServer",
                 Offer = "WindowsServer",
                 Sku = "2019-datacenter-smalldisk",
                 Version = "latest",
             },
             nodeAgentSkuId: "batch.node.windows amd64")
             {
                 NodePlacementPolicy = BatchNodePlacementPolicyType.Zonal,
                 IsAutomaticUpdateEnabled = false
             },
         },
         ScaleSettings = new BatchAccountPoolScaleSettings()
         {
             FixedScale = new BatchAccountFixedScaleSettings()
             {
                 TargetDedicatedNodes = 2,
                 TargetLowPriorityNodes = 0,
             },
         },
         UpgradePolicy = new UpgradePolicy()
         {
             Mode = UpgradeMode.Automatic,
             AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy()
             {
                 DisableAutomaticRollback = true,
                 EnableAutomaticOSUpgrade = true,
                 UseRollingUpgradePolicy = true,
                 OSRollingUpgradeDeferral = true
             },
             RollingUpgradePolicy = new RollingUpgradePolicy()
             {
                 EnableCrossZoneUpgrade = true,
                 MaxBatchInstancePercent = 20,
                 MaxUnhealthyInstancePercent = 20,
                 MaxUnhealthyUpgradedInstancePercent = 20,
                 PauseTimeBetweenBatches = "PT0S",
                 PrioritizeUnhealthyInstances = false,
                 RollbackFailedInstancesOnPolicyBreach = false,
             }
         }
     };
 
     ArmOperation<BatchAccountPoolResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, poolName, data);
     BatchAccountPoolResource result = lro.Value;
 
     // the variable result is a resource, you could call other operations on this instance as well
     // but just for demo, we get its data from this resource instance
     BatchAccountPoolData resourceData = result.Data;
     // for demo we just print out the id
     Console.WriteLine($"Succeeded on id: {resourceData.Id}");
}

GYIK

  • Megszakadnak a feladataim, ha engedélyezem az automatikus operációs rendszer frissítését?

    A tevékenységek nem fognak megszakadni, ha az automaticOSUpgradePolicy.osRollingUpgradeDeferral értéke "true". Ebben az esetben a frissítés el lesz halasztva, amíg a csomópont inaktívvá nem válik. Ellenkező esetben a csomópont frissül, amikor új operációsrendszer-verziót kap, függetlenül attól, hogy éppen egy feladatot futtat-e. Ezért határozottan javasoljuk az automaticOSUpgradePolicy.osRollingUpgradeDeferral engedélyezését.

Következő lépések

  • Megtudhatja, hogyan hozhat létre készletet felügyelt rendszerképek használatával.
  • Megtudhatja, hogyan hozhat létre készletet az Azure Compute Gallery használatával.