Bagikan melalui


Membuat kumpulan Azure Batch dengan Peningkatan Sistem Operasi Otomatis (OS)

Saat membuat kumpulan Azure Batch, Anda dapat memprovisikan kumpulan dengan simpul yang mengaktifkan Peningkatan OS Otomatis. Artikel ini menjelaskan cara menyiapkan kumpulan Batch dengan Peningkatan OS Otomatis.

Mengapa menggunakan Peningkatan OS Otomatis?

Peningkatan OS Otomatis digunakan untuk menerapkan strategi dan kontrol peningkatan sistem operasi otomatis dalam Kumpulan Azure Batch. Berikut adalah beberapa alasan untuk menggunakan Peningkatan OS Otomatis:

  • Keamanan. Peningkatan OS Otomatis memastikan patching tepat waktu kerentanan dan masalah keamanan dalam gambar sistem operasi, untuk meningkatkan keamanan sumber daya komputasi. Ini membantu mencegah potensi kerentanan keamanan menimbulkan ancaman terhadap aplikasi dan data.
  • Gangguan Ketersediaan yang Diminimalkan. Peningkatan OS Otomatis digunakan untuk meminimalkan gangguan ketersediaan simpul komputasi selama peningkatan OS. Hal ini dicapai melalui penundaan peningkatan sadar penjadwalan tugas dan dukungan untuk peningkatan bergulir, memastikan bahwa beban kerja mengalami gangguan minimal.
  • Fleksibilitas. Peningkatan OS Otomatis memungkinkan Anda mengonfigurasi strategi peningkatan sistem operasi otomatis, termasuk koordinasi peningkatan berbasis persentase dan dukungan putar kembali. Ini berarti Anda dapat menyesuaikan strategi peningkatan untuk memenuhi persyaratan performa dan ketersediaan spesifik Anda.
  • Kontrol. Peningkatan OS Otomatis memberi Anda kontrol atas strategi peningkatan sistem operasi Anda untuk memastikan penyebaran peningkatan yang aman dan sadar beban kerja. Anda dapat menyesuaikan konfigurasi kebijakan untuk memenuhi kebutuhan spesifik organisasi Anda.

Singkatnya, penggunaan Peningkatan OS Otomatis membantu meningkatkan keamanan, meminimalkan gangguan ketersediaan, dan memberikan kontrol dan fleksibilitas yang lebih besar untuk beban kerja Anda.

Bagaimana cara kerja Peningkatan OS Otomatis?

Saat meningkatkan gambar, VM di Azure Batch Pool akan mengikuti alur kerja yang kira-kira sama dengan VirtualMachineScaleSets. Untuk mempelajari selengkapnya tentang langkah-langkah terperinci yang terlibat dalam proses Peningkatan OS Otomatis untuk VirtualMachineScaleSets, Anda dapat merujuk ke halaman VirtualMachineScaleSet.

Namun, jika automaticOSUpgradePolicy.osRollingUpgradeDeferral diatur ke 'true' dan peningkatan tersedia ketika simpul batch secara aktif menjalankan tugas, peningkatan akan tertunda sampai semua tugas selesai pada simpul.

Catatan

Jika kumpulan telah mengaktifkan osRollingUpgradeDeferral, simpulnya akan ditampilkan sebagai status upgradeingos selama proses peningkatan. Harap dicatat bahwa status peningkatan hanya akan ditampilkan saat Anda menggunakan versi API 2024-02-01 atau yang lebih baru. Jika Anda menggunakan versi API lama untuk memanggil GetTVM/ListTVM, simpul akan berada dalam status reboot saat meningkatkan.

Gambar OS yang didukung

Hanya gambar platform OS tertentu yang saat ini didukung untuk peningkatan otomatis. Untuk daftar gambar terperinci, Anda bisa mendapatkan dari halaman VirtualMachineScaleSet.

Persyaratan

  • Properti versi gambar harus diatur ke terbaru.
  • Untuk API Manajemen Batch, gunakan API versi 2024-02-01 atau yang lebih tinggi. Untuk API Layanan Batch, gunakan API versi 2024-02-01.19.0 atau yang lebih tinggi.
  • Pastikan bahwa sumber daya eksternal yang ditentukan dalam kumpulan tersedia dan diperbarui. Contohnya termasuk SAS URI untuk bootstrap payload di properti ekstensi komputer virtual, payload di akun penyimpanan, referensi ke rahasia dalam model, dan banyak lagi.
  • Jika Anda menggunakan properti virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates, properti ini harus diatur ke 'false' dalam definisi kumpulan. Properti enableAutomaticUpdates mengaktifkan patching dalam mesin virtual di mana "Windows Update" menerapkan patch sistem operasi tanpa mengganti disk OS. Dengan peningkatan gambar OS otomatis diaktifkan, proses patching tambahan melalui Windows Update tidak diperlukan.

Persyaratan tambahan untuk gambar kustom

  • Ketika versi baru gambar diterbitkan dan direplikasi ke wilayah kumpulan tersebut, VM akan ditingkatkan ke versi terbaru gambar Azure Compute Gallery. Jika gambar baru tidak direplikasi ke wilayah tempat kumpulan disebarkan, instans VM tidak akan ditingkatkan ke versi terbaru. Replikasi gambar regional memungkinkan Anda mengontrol peluncuran gambar baru untuk VM Anda.
  • Versi gambar baru tidak boleh dikecualikan dari versi terbaru untuk gambar galeri tersebut. Versi gambar yang dikecualikan dari versi terbaru gambar galeri tidak akan diluncurkan melalui peningkatan gambar OS otomatis.

Mengonfigurasi Peningkatan OS Otomatis

Jika Anda ingin menerapkan Peningkatan OS Otomatis dalam kumpulan, penting untuk mengonfigurasi bidang UpgradePolicy selama proses pembuatan kumpulan. Untuk mengonfigurasi peningkatan gambar OS otomatis, pastikan properti automaticOSUpgradePolicy.enableAutomaticOSUpgrade diatur ke 'true' dalam definisi kumpulan.

Catatan

Mode Kebijakan Peningkatan dan Kebijakan Peningkatan OS Otomatis adalah pengaturan terpisah dan mengontrol berbagai aspek dari skala yang disediakan yang ditetapkan oleh Azure Batch. Mode Kebijakan Peningkatan akan menentukan apa yang terjadi pada instans yang ada dalam set skala. Namun, Kebijakan Peningkatan OS Otomatis enableAutomaticOSUpgrade khusus untuk gambar OS dan melacak perubahan yang telah dibuat penerbit gambar dan menentukan apa yang terjadi ketika ada pembaruan pada gambar.

Penting

Jika Anda menggunakan langganan pengguna, penting untuk dicatat bahwa fitur langganan Microsoft.Compute/RollingUpgradeDeferral diperlukan agar langganan Anda terdaftar. Anda tidak dapat menggunakan osRollingUpgradeDeferral kecuali fitur ini terdaftar. Untuk mengaktifkan fitur ini, silakan daftarkan secara manual pada langganan Anda.

REST API

Contoh berikut menjelaskan cara membuat kumpulan dengan Peningkatan OS Otomatis melalui REST API:

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

Isi Permintaan

{
    "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#)

Cuplikan kode berikut menunjukkan contoh cara menggunakan pustaka klien Batch .NET untuk membuat kumpulan Peningkatan OS Otomatis melalui kode C#. Untuk detail selengkapnya tentang Batch .NET, lihat dokumentasi referensi.

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

Tanya Jawab Umum

  • Apakah tugas saya akan terganggu jika saya mengaktifkan Peningkatan OS Otomatis?

    Tugas tidak akan terganggu saat automaticOSUpgradePolicy.osRollingUpgradeDeferral diatur ke 'true'. Dalam hal ini, peningkatan akan ditunda sampai node menjadi menganggur. Jika tidak, simpul akan ditingkatkan ketika menerima versi OS baru, terlepas dari apakah saat ini sedang menjalankan tugas atau tidak. Jadi kami sangat menyarankan untuk mengaktifkan automaticOSUpgradePolicy.osRollingUpgradeDeferral.

Langkah berikutnya

  • Pelajari cara menggunakan gambar terkelola untuk membuat kumpulan.
  • Pelajari cara menggunakan Azure Compute Gallery untuk membuat kumpulan.