Toplu Konteyner İzolasyon Görevi

Azure Batch, görev seviyesinde bir izolasyon yapılandırması sunar ve bu, görevlerin tüm geçici diski veya tüm AZ_BATCH_NODE_ROOT_DIR’yi monte etmemesine olanak tanır. Bunun yerine, konteyner görevine eklemek istediğiniz belirli Azure Batch veri yollarını özelleştirebilirsiniz.

Note

Azure Batch Data Path, bir Azure Batch düğümünde görevler ve uygulamalar için belirlenmiş özel yolları ifade eder. Tüm bu yollar AZ_BATCH_NODE_ROOT_DIR altında bulunur.

Kapsayıcı görevlerde neden izolasyon özelliğine ihtiyaç duyuyoruz?

Windows konteyneri iş yükünde, tüm geçici disk (D:) görevin konteynerine bağlanır. Linux kapsayıcı görev iş yükü için, Azure Batch tüm AZ_BATCH_NODE_ROOT_DIR'yi hem Okuma-Yazma modunda görev kapsayıcısına ekler. Ancak, kapsayıcı hacimlerinizi özelleştirmek istiyorsanız, bu yapılandırma düğümde çalışan tüm kapsayıcılarda bazı verilerin paylaşılmasına neden olabilir. Aynı konuyu ele almak için, görev konteynerine eklemek istediğiniz Azure Batch veri yollarını özelleştirme yeteneğini destekliyoruz.

  • Güvenlik: Kapsayıcı görev verilerinin ana makineye sızmasını veya ana makinedeki verileri değiştirmesini önler.
  • Özelleştir: Konteyner görev hacimlerinizi ihtiyacınıza göre özelleştirebilirsiniz.

Note

Türkçe: Bu özelliği kullanmak için, lütfen düğüm ajanı sürümünüzün 1.11.11'den büyük olduğundan emin olun.

Kaplar için ana bilgisayar veri yolu eklerini yapılandırma

  • Linux düğümü için: Sadece aynı yolu konteynere bağlayabiliriz.
  • Windows düğümü için: Windows kapsayıcılarının D: diski olmadığından yolu bağlamamız gerekiyor. Listelenmiş yollardan monte etmeyi seçebileceğiniz seçenekleri inceleyin.
Azure Toplu Veri Yolu Ana Bilgisayardaki Yol Kapsayıcıdaki Yol
AZ_BATCH_APP_PACKAGE_ D:\batch\tasks\applications C:\batch\tasks\applications
AZ_BATCH_NODE_SHARED_DIR D:\batch\tasks\shared C:\batch\tasks\shared
AZ_BATCH_NODE_STARTUP_DIR D:\batch\tasks\startup C:\batch\tasks\startup
AZ_BATCH_NODE_MOUNTS_DIR D:\batch\tasks\fsmounts C:\batch\tasks\fsmounts
AZ_BATCH_NODE_STARTUP_WORKING_DIR D:\batch\tasks\startup\wd C:\batch\tasks\startup\wd
AZ_BATCH_JOB_PREP_DIR C:\batch\tasks\workitems\{workitemname}\{jobname}\{jobpreptaskname} D:\batch\tasks\workitems\{workitemname}\{jobname}\{jobpreptaskname}
AZ_BATCH_JOB_PREP_WORKING_DIR C:\batch\tasks\workitems\{workitemname}\{jobname}\{jobpreptaskname}\wd D:\batch\tasks\workitems\{workitemname}\{jobname}\{jobpreptaskname}\wd
AZ_BATCH_TASK_DIR D:\batch\tasks\workitems\{workitemname}\{jobname}\{taskname} C:\batch\tasks\workitems\{workitemname}\{jobname}\{taskname}
AZ_BATCH_TASK_WORKING_DIR D:\batch\tasks\workitems\{workitemname}\{jobname}\{taskname}\wd C:\batch\tasks\workitems\{workitemname}\{jobname}\{taskname}\wd

Kapsayıcıya eklemeyi seçebileceğiniz listelenen veri yollarına bakın. Seçilmeyen veri yollarının ilgili ortam değişkenleri kaldırılır.

Veri Yolu Numaralandırma Veri Yolu, konteynere eklenecek
Shared AZ_BATCH_NODE_SHARED_DIR
Uygulamalar AZ_BATCH_APP_PACKAGE_*
Startup AZ_BATCH_NODE_STARTUP_DIR, AZ_BATCH_NODE_STARTUP_WORKING_DIR
Vfsmounts AZ_BATCH_NODE_MOUNTS_DIR
JobPrep AZ_BATCH_JOB_PREP_DIR, AZ_BATCH_JOB_PREP_WORKING_DIR
Task AZ_BATCH_TASK_DIR, AZ_BATCH_TASK_WORKING_DIR

Bir konteyner izolasyon görevi çalıştırın

Note

  • Boş bir liste kullanırsanız NodeAgent, görevin kapsayıcısına hiçbir veri yolu bağlamaz. Null kullanırsanız, NodeAgent tüm geçici diski (Windows'ta) veya AZ_BATCH_NODE_ROOT_DIR (Linux'ta) bağlayacaktır.
  • Görev veri yolunu kapsayıcıya bağlamazsanız, görevin workingDirectory özelliğini containerImageDefault olarak ayarlamanız gerekir.

Bir konteyner yalıtım görevi çalıştırmadan önce, bir konteyner ile bir havuz oluşturmalısınız. Daha fazla bilgi için nasıl oluşturulacağına dair bu kılavuza bakın Docker konteyner iş yükü.

Aşağıdaki örnek, veri izolasyonu kullanarak bir konteyner görevi oluşturmanın bir REST API ile nasıl yapılacağını açıklamaktadır.

POST {batchUrl}/jobs/{jobId}/tasks?api-version=2024-07-01.20.0
{
    "id": "taskId",
    "commandLine": "bash -c 'echo hello'",
    "containerSettings": {
        "imageName": "ubuntu",
        "containerHostBatchBindMounts": [
            {
            "source": "Task",
            "isReadOnly": true
            }
        ]
    },
    "userIdentity": {
        "autoUser": {
            "scope": "task",
            "elevationLevel": "nonadmin"
        }
    }
}