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 EKS AL2 AMIs, corre AWS Batch . /etc/eks/bootstrap.sh Non eseguirlo /etc/eks/bootstrap.sh nel modello o negli cloud-init user-data 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 AL2 023, AWS Batch utilizza il NodeConfigSpecformato EKS per far sì che le istanze 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 EKS AL2 AMIs, --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 EKS AL2 023 AMIs il formato del file è YAML. Per l'elenco dei parametri supportati, NodeConfigSpecconsultate la documentazione. Kubernetes Nell'esempio seguente per EKS AL2 023 AMIs, --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.

IPv6 supporto

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