View a markdown version of this page

Personalizza i modelli di lancio di Amazon EKS - AWS Batch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Personalizza i modelli di lancio di Amazon EKS

AWS Batch su Amazon EKS supporta i modelli di lancio. Esistono dei vincoli su ciò che il modello di lancio può fare.

Importante
  • Per le AMI EKS AL2, funziona. AWS Batch /etc/eks/bootstrap.sh Non eseguirlo /etc/eks/bootstrap.sh nel modello o cloud-init user-data negli script di lancio. È possibile aggiungere parametri aggiuntivi oltre al --kubelet-extra-args parametro di bootstrap.sh. A tale scopo, impostate la AWS_BATCH_KUBELET_EXTRA_ARGS variabile nel /etc/aws-batch/batch.config file. Vedi l'esempio seguente per i dettagli.

  • Per EKS AL2023, AWS Batch utilizza EKS per far sì che le NodeConfigSpecistanze si uniscano al cluster EKS. AWS Batch vengono ClusterDetailscompilati NodeConfigSpecper il cluster EKS e non è necessario specificarli.

Nota

Ti consigliamo di non impostare nessuna delle seguenti NodeConfigSpecimpostazioni nel modello di lancio poiché AWS Batch sostituiranno i tuoi valori. Per ulteriori informazioni, consulta Responsabilità condivisa dei nodi Kubernetes.

  • Taints

  • Cluster Name

  • apiServerEndpoint

  • certificatAuthority

  • CIDR

  • Non creare etichette con il prefisso batch.amazonaws.com/

Nota

Se il modello di avvio viene modificato dopo la CreateComputeEnvironmentchiamata, UpdateComputeEnvironmentdeve essere chiamato per valutare la versione del modello di avvio da sostituire.

Aggiungi argomenti kubelet aggiuntivi

AWS Batch supporta l'aggiunta di argomenti aggiuntivi al kubelet comando. Per l'elenco dei parametri supportati, kubeletconsultate la Kubernetesdocumentazione. Nell'esempio seguente, per le AMI EKS AL2, --node-labels mylabel=helloworld viene aggiunto alla kubelet riga di comando.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash mkdir -p /etc/aws-batch echo AWS_BATCH_KUBELET_EXTRA_ARGS=\"--node-labels mylabel=helloworld\" >> /etc/aws-batch/batch.config --==MYBOUNDARY==--

Per le AMI EKS AL2023 il formato di file è YAML. Per l'elenco dei parametri supportati, consulta NodeConfigSpecla documentazione. Kubernetes Nell'esempio seguente, per le AMI EKS AL2023, --node-labels mylabel=helloworld viene aggiunto alla kubelet riga di comando.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: application/node.eks.aws apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: kubelet: flags: - --node-labels=mylabel=helloworld --==MYBOUNDARY==--

Configura il runtime del contenitore

È possibile utilizzare la variabile di AWS Batch CONTAINER_RUNTIME ambiente per configurare il runtime del contenitore su un nodo gestito. L'esempio seguente imposta il runtime del contenitore su containerd when bootstrap.sh run. Per ulteriori informazioni, containerdconsultate la Kubernetesdocumentazione.

Se si utilizza un'EKS_AL2023_NVIDIAAMI ottimizzata EKS_AL2023 o non è necessario specificare il runtime del contenitore poiché è supportato solo containerd.

Nota

La variabile di CONTAINER_RUNTIME ambiente è equivalente all'--container-runtimeopzione di. bootstrap.sh Per ulteriori informazioni, Optionsconsulta la Kubernetesdocumentazione.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash mkdir -p /etc/aws-batch echo CONTAINER_RUNTIME=containerd >> /etc/aws-batch/batch.config --==MYBOUNDARY==--

Montare un volume Amazon EFS

Puoi utilizzare i modelli di avvio per montare volumi sul nodo. Nell'esempio seguente, vengono utilizzate runcmd le impostazioni cloud-config packages e. Per ulteriori informazioni, consulta gli esempi di configurazione di Cloud nella cloud-initdocumentazione.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" packages: - amazon-efs-utils runcmd: - file_system_id_01=fs-abcdef123 - efs_directory=/mnt/efs - mkdir -p ${efs_directory} - echo "${file_system_id_01}:/ ${efs_directory} efs _netdev,noresvport,tls,iam 0 0" >> /etc/fstab - mount -t efs -o tls ${file_system_id_01}:/ ${efs_directory} --==MYBOUNDARY==--

Per utilizzare questo volume nel job, è necessario aggiungerlo nel parametro EksProperties a. RegisterJobDefinition L'esempio seguente è una parte importante della definizione del processo.

{ "jobDefinitionName": "MyJobOnEks_EFS", "type": "container", "eksProperties": { "podProperties": { "containers": [ { "image": "public.ecr.aws/amazonlinux/amazonlinux:2", "command": ["ls", "-la", "/efs"], "resources": { "limits": { "cpu": "1", "memory": "1024Mi" } }, "volumeMounts": [ { "name": "efs-volume", "mountPath": "/efs" } ] } ], "volumes": [ { "name": "efs-volume", "hostPath": { "path": "/mnt/efs" } } ] } } }

Nel nodo, il volume Amazon EFS è montato nella /mnt/efs directory. Nel contenitore per il job Amazon EKS, il volume viene montato nella /efs directory.

Supporto IPv6

AWS Batch supporta i cluster Amazon EKS con indirizzi IPv6. Non sono richieste personalizzazioni per il supporto. AWS Batch Tuttavia, prima di iniziare, ti consigliamo di rivedere le considerazioni e le condizioni descritte in Assegnazione di indirizzi IPv6 a pod e servizi nella Amazon EKS User Guide.