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 avvio. Le funzionalità del modello di lancio sono limitate.

Importante
  • Per le AMI EKS AL2, funziona. AWS Batch /etc/eks/bootstrap.sh Non eseguire l'esecuzione /etc/eks/bootstrap.sh nel modello o cloud-init user-data negli script di avvio. Puoi aggiungere parametri aggiuntivi oltre al --kubelet-extra-args parametro a bootstrap.sh. Per fare ciò, imposta la AWS_BATCH_KUBELET_EXTRA_ARGS variabile nel /etc/aws-batch/batch.config file. Per ulteriori informazioni, vedere l'esempio seguente.

  • Per EKS AL2023, AWS Batch utilizza il formato EKS per far sì che le NodeConfigSpec istanze si uniscano al cluster EKS. AWS Batch compila i ClusterDetails campi NodeConfigSpec per il cluster EKS e non è necessario specificarli.

Nota

Ti consigliamo di non impostare nessuna delle seguenti NodeConfigSpec impostazioni nel modello di avvio poiché AWS Batch sovrascriverà i tuoi valori. Per ulteriori informazioni, consulta Responsabilità condivisa di Kubernetes nodi.

  • 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 CreateComputeEnvironment chiamata, UpdateComputeEnvironment deve essere chiamato per valutare la versione del modello di avvio da sostituire.

Aggiungi argomenti aggiuntivi a kubelet

AWS Batch supporta l'aggiunta di argomenti aggiuntivi al comando. kubelet Per l'elenco dei parametri supportati, kubelet consulta la Kubernetes documentazione. Nel seguente esempio 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 del file è YAML. Per l'elenco dei parametri supportati, consulta NodeConfigSpec la documentazione. Kubernetes Nel seguente esempio 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==--

Configurare 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 quando bootstrap.sh viene eseguito. Per ulteriori informazioni, containerd consultate la Kubernetes documentazione.

Se si utilizza un'EKS_AL2023_NVIDIAAMI ottimizzataEKS_AL2023, 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, Options consulta la Kubernetes documentazione.

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==--

Monta un volume Amazon EFS

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

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 gran parte della definizione del lavoro.

{ "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 cluster Amazon EKS con indirizzi IPv6. Non sono richieste personalizzazioni per il supporto. AWS Batch Tuttavia, prima di iniziare, ti consigliamo di esaminare le considerazioni e le condizioni descritte in Assegnazione di indirizzi IPv6 a pod e servizi nella Amazon EKS User Guide.