Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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"
}
}
}