Amazon EKS-Startvorlagen anpassen - 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.

Amazon EKS-Startvorlagen anpassen

AWS Batch auf Amazon unterstützt EKS Startvorlagen. Es gibt Einschränkungen in Bezug darauf, was Ihre Startvorlage leisten kann.

Wichtig
  • Für EKS AL2 AMIs AWS Batch läuft/etc/eks/bootstrap.sh. Führen Sie es nicht /etc/eks/bootstrap.sh in Ihrer Startvorlage oder Ihren cloud-init user-data Skripten 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 AL2 023 wird NodeConfigSpecvon EKS AWS Batch verwendet, um Instanzen zum EKS-Cluster hinzuzufügen. AWS Batch wird NodeConfigSpecfür ClusterDetailsden EKS-Cluster aufgefüllt und Sie müssen sie nicht angeben.

Anmerkung

Wir empfehlen, dass Sie keine der folgenden NodeConfigSpecEinstellungen in der Startvorlage festlegen, da AWS Batch diese Ihre Werte überschreiben würden. Weitere Informationen finden Sie unter Gemeinsame Verantwortung der Kubernetes Knoten.

  • Taints

  • Cluster Name

  • apiServerEndpoint

  • certificatAuthority

  • CIDR

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

Anmerkung

Wenn die Startvorlage nach dem Aufruf geändert CreateComputeEnvironmentwird, UpdateComputeEnvironmentmuss sie aufgerufen werden, um zu überprüfen, welche Version der Startvorlage ersetzt werden kann.

Fügen Sie kubelet zusätzliche Argumente hinzu

AWS Batch unterstützt das Hinzufügen zusätzlicher Argumente zum kubelet Befehl. Eine Liste der unterstützten Parameter finden Sie kubeletin der KubernetesDokumentation. Im folgenden Beispiel für EKS AL2 AMIs --node-labels mylabel=helloworld wird 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 AL2 023 ist AMIs das Dateiformat YAML. Eine Liste der unterstützten Parameter finden Sie NodeConfigSpecin der Kubernetes Dokumentation. Im folgenden Beispiel für EKS AL2 023 AMIs --node-labels mylabel=helloworld wird der 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 „containerdwhen bootstrap.sh runs“ festgelegt. Weitere Informationen finden Sie containerdin der KubernetesDokumentation.

Wenn Sie ein optimiertes EKS_AL2023 oder EKS_AL2023_NVIDIA 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 Optionsin der KubernetesDokumentation.

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

Bereitstellen eines Amazon EFS-Volumes

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-initDokumentation unter Cloud-Konfigurationsbeispielen.

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 zu verwenden, muss es im eksProperties-Parameter 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 bereitgestellt.

IPv6 Unterstützung

AWS Batch unterstützt Amazon EKS-Cluster IPv6 mit Adressen. Für den AWS Batch Support sind keine Anpassungen erforderlich. 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.