View a markdown version of this page

Passen Sie die Amazon EKS-Startvorlagen an - AWS Batch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Passen Sie die Amazon EKS-Startvorlagen an

AWS Batch auf Amazon EKS unterstützt Startvorlagen. Es gibt Einschränkungen in Bezug auf die Funktionen Ihrer Startvorlage.

Wichtig
  • AWS Batch Läuft /etc/eks/bootstrap.sh für EKS AL2-AMIs. Führen Sie es nicht /etc/eks/bootstrap.sh in Ihrer Startvorlage oder Ihren cloud-init user-data Startskripten aus. Sie können neben dem Parameter weitere --kubelet-extra-args Parameter zu bootstrap.sh hinzufügen. Stellen Sie dazu die AWS_BATCH_KUBELET_EXTRA_ARGS Variable in der /etc/aws-batch/batch.config Datei ein. Einzelheiten finden Sie im folgenden Beispiel.

  • Für EKS AL2023 wird das NodeConfigSpec von EKS AWS Batch verwendet, um Instanzen dazu zu bringen, dem EKS-Cluster beizutreten. AWS Batch wird NodeConfigSpec für ClusterDetails den EKS-Cluster eingegeben und Sie müssen sie nicht angeben.

Anmerkung

Wir empfehlen, keine der folgenden NodeConfigSpec Einstellungen in der Startvorlage festzulegen, da AWS Batch dies Ihre Werte außer Kraft setzt. Weitere Informationen finden Sie unter Geteilte Verantwortung der Kubernetes Knoten.

  • Taints

  • Cluster Name

  • apiServerEndpoint

  • certificatAuthority

  • CIDR

  • Erstellen Sie keine Beschriftungen mit dem Präfix batch.amazonaws.com/

Anmerkung

Wenn die Startvorlage nach dem Aufruf geändert CreateComputeEnvironment wird, UpdateComputeEnvironment muss sie aufgerufen werden, um die Version der Startvorlage zu überprüfen, ob sie ersetzt werden kann.

Fügen Sie zusätzliche Kubelet-Argumente hinzu

AWS Batch unterstützt das Hinzufügen zusätzlicher Argumente zum Befehlkubelet. Eine Liste der unterstützten Parameter finden Sie kubelet in der Kubernetes Dokumentation. Im folgenden Beispiel --node-labels mylabel=helloworld wird für EKS-AL2-AMIs der kubelet Befehlszeile hinzugefügt.

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

Für EKS AL2023 AMIs ist das Dateiformat YAML. Eine Liste der unterstützten Parameter finden Sie NodeConfigSpec in der Kubernetes Dokumentation. Im folgenden Beispiel --node-labels mylabel=helloworld wird für EKS AL2023 AMIs zur kubelet Befehlszeile hinzugefügt.

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

Konfigurieren Sie die Container-Laufzeit

Sie können die AWS Batch CONTAINER_RUNTIME Umgebungsvariable verwenden, um die Container-Laufzeit auf einem verwalteten Knoten zu konfigurieren. Im folgenden Beispiel wird die Container-Laufzeit auf containerd when bootstrap.sh runs festgelegt. Weitere Informationen finden Sie containerd in der Kubernetes Dokumentation.

Wenn Sie ein optimiertes EKS_AL2023_NVIDIA AMI EKS_AL2023 oder ein AMI verwenden, müssen Sie die Container-Laufzeit nicht angeben, da nur containerd unterstützt wird.

Anmerkung

Die CONTAINER_RUNTIME Umgebungsvariable entspricht der --container-runtime Option vonbootstrap.sh. Weitere Informationen finden Sie Options in der Kubernetes Dokumentation.

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

Mounten Sie ein Amazon EFS-Volume

Sie können Startvorlagen verwenden, um Volumes auf dem Knoten zu mounten. Im folgenden Beispiel werden die runcmd Einstellungen cloud-config packages und verwendet. Weitere Informationen finden Sie in der cloud-init Dokumentation unter Cloud-Konfigurationsbeispiele.

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

Um dieses Volume im Job verwenden zu können, muss es im Parameter eksProperties zu hinzugefügt werden. RegisterJobDefinition Das folgende Beispiel ist ein großer Teil der Auftragsdefinition.

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

Im Knoten ist das Amazon EFS-Volume im /mnt/efs Verzeichnis gemountet. Im Container für den Amazon EKS-Job wird das Volume im /efs Verzeichnis gemountet.

IPv6-Support

AWS Batch unterstützt Amazon EKS-Cluster mit IPv6-Adressen. Für den Support sind keine Anpassungen erforderlich. AWS Batch Bevor Sie beginnen, empfehlen wir Ihnen jedoch, die Überlegungen und Bedingungen zu lesen, die unter Zuweisen von IPv6-Adressen zu Pods und Services im Amazon EKS-Benutzerhandbuch beschrieben sind.