Dela via


Uppgift för isolering av batchbehållare

Azure Batch erbjuder en isoleringskonfiguration på aktivitetsnivå, vilket gör att aktiviteter kan undvika montering av hela den tillfälliga disken eller hela AZ_BATCH_NODE_ROOT_DIR. I stället kan du anpassa de specifika Azure Batch-datasökvägar som du vill koppla till containeraktiviteten.

Kommentar

Azure Batch Data Path refererar till de specifika sökvägarna på en Azure Batch-nod som är avsedd för uppgifter och program. Alla dessa sökvägar finns under AZ_BATCH_NODE_ROOT_DIR.

Varför vi behöver en isoleringsfunktion i containeruppgiften

I en Windows-containeraktivitetsarbetsbelastning är hela den tillfälliga disken (D:) ansluten till aktivitetens container. För en Linux-containeraktivitetsarbetsbelastning kopplar Azure Batch hela AZ_BATCH_NODE_ROOT_DIR till aktivitetens container, båda i ReadWrite-läge. Men om du vill anpassa dina containervolymer kan den här konfigurationen leda till att vissa data delas mellan alla containrar som körs på noden. För att hantera samma sak stöder vi möjligheten att anpassa de Azure Batch-datasökvägar som du vill koppla till aktivitetscontainern.

  • Säkerhet: Förhindrar att containeraktivitetsdata läcker till värddatorn eller ändrar data på värddatorn.
  • Anpassa: Du kan anpassa dina containeraktivitetsvolymer efter behov.

Anteckning

Om du vill använda den här funktionen kontrollerar du att nodagentversionen är större än 1.11.11.

Konfigurera bifogade filer för värddatasökväg för containrar

  • För Linux-nod: Vi kan bara ansluta samma sökväg till containern.
  • För Windows-nod: Eftersom Windows-containrar inte har en D: disk måste vi montera sökvägen. Se de listade sökvägar som du kan välja att montera.
Azure Batch-datasökväg Sökväg i värddatorn Sökväg i container
AZ_BATCH_APP_PACKAGE_ D:\batch\tasks\applications C:\sats\tasker\tillämpningar
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

Se de listade datastigarna som du kan välja att koppla till containern. Alla omarkerade datasökvägar har sina associerade miljövariabler borttagna.

Datavägsenum Datasökväg kommer att bifogas till container
Delad AZ_BATCH_NODE_SHARED_DIR
Applikationer AZ_BATCH_APP_PACKAGE_*
Nystartade företag 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
Aktivitet AZ_BATCH_TASK_DIR, AZ_BATCH_TASK_WORKING_DIR

Kör en uppgift för isolering av container

Kommentar

  • Om du använder en tom lista monterar NodeAgent inte några datavägar i aktivitetens container. Om du använder null monterar NodeAgent hela den tillfälliga disken (i Windows) eller AZ_BATCH_NODE_ROOT_DIR (i Linux).
  • Om du inte monterar sökvägen för aktivitetsdata till containern måste du ställa in aktivitetens inställning workingDirectory till containerImageDefault.

Innan du kör en aktivitet för containerisolering måste du skapa en pool med en container. För mer information om hur du skapar den, se den här guiden Docker-container arbetsbelastning.

I följande exempel beskrivs hur du skapar en containeraktivitet med dataisolering med hjälp av REST API:

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