View a markdown version of this page

Kustomisasi templat peluncuran Amazon EKS - AWS Batch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kustomisasi templat peluncuran Amazon EKS

AWS Batch di Amazon EKS mendukung template peluncuran. Ada kendala pada apa yang dapat dilakukan template peluncuran Anda.

penting
  • Untuk EKS AL2 AMI, AWS Batch jalankan/etc/eks/bootstrap.sh. Jangan jalankan /etc/eks/bootstrap.sh di template atau cloud-init user-data skrip peluncuran Anda. Anda dapat menambahkan parameter tambahan selain --kubelet-extra-args parameter ke bootstrap.sh. Untuk melakukan ini, atur AWS_BATCH_KUBELET_EXTRA_ARGS variabel dalam /etc/aws-batch/batch.config file. Lihat contoh berikut untuk detailnya.

  • Untuk EKS AL2023, AWS Batch gunakan NodeConfigSpec dari EKS untuk membuat instance bergabung dengan cluster EKS. AWS Batch diisi NodeConfigSpec untuk ClusterDetails cluster EKS dan Anda tidak perlu menentukannya.

catatan

Kami menyarankan Anda untuk tidak mengatur NodeConfigSpec pengaturan berikut di template peluncuran karena AWS Batch akan mengganti nilai Anda. Untuk informasi selengkapnya, lihat Tanggung jawab bersama Kubernetes simpul.

  • Taints

  • Cluster Name

  • apiServerEndpoint

  • certificatAuthority

  • CIDR

  • Jangan membuat label dengan awalan batch.amazonaws.com/

catatan

Jika template peluncuran diubah setelah CreateComputeEnvironment dipanggil, UpdateComputeEnvironment harus dipanggil untuk mengevaluasi versi template peluncuran untuk penggantian.

Tambahkan argum en tambahan kubelet

AWS Batch mendukung penambahan argumen tambahan ke kubelet perintah. Untuk daftar parameter yang didukung, lihat kubelet di Kubernetes dokumentasi. Dalam contoh berikut untuk EKS AL2 AMI, --node-labels mylabel=helloworld ditambahkan ke baris kubelet perintah.

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

Untuk EKS AL2023 AMI format file adalah YAML. Untuk daftar parameter yang didukung, lihat NodeConfigSpec di Kubernetes dokumentasi. Dalam contoh berikut untuk EKS AL2023 AMI, --node-labels mylabel=helloworld ditambahkan ke baris kubelet perintah.

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

Konfigurasikan runtime kontainer

Anda dapat menggunakan variabel AWS Batch CONTAINER_RUNTIME lingkungan untuk mengonfigurasi runtime kontainer pada node terkelola. Contoh berikut mengatur runtime container ke containerd saat di bootstrap.sh jalankan. Untuk informasi lebih lanjut, lihat containerd dalam Kubernetes dokumentasi.

Jika Anda menggunakan EKS_AL2023_NVIDIA AMI EKS_AL2023 atau yang dioptimalkan, Anda tidak perlu menentukan runtime kontainer karena hanya containerd yang didukung.

catatan

Variabel CONTAINER_RUNTIME lingkungan setara dengan --container-runtime opsibootstrap.sh. Untuk informasi lebih lanjut, lihat Options dalam Kubernetes dokumentasi.

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

Memasang volume Amazon EFS

Anda dapat menggunakan template peluncuran untuk memasang volume ke node. Dalam contoh berikut, runcmd pengaturan cloud-config packages dan digunakan. Untuk informasi selengkapnya, lihat contoh konfigurasi Cloud dalam cloud-init dokumentasi.

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

Untuk menggunakan volume ini dalam pekerjaan, itu harus ditambahkan di parameter EK Sproperties ke RegisterJobDefinition. Contoh berikut adalah sebagian besar dari definisi pekerjaan.

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

Di node, volume Amazon EFS dipasang di /mnt/efs direktori. Dalam wadah untuk pekerjaan Amazon EKS, volume dipasang di /efs direktori.

Dukungan IPv6

AWS Batch mendukung cluster Amazon EKS yang memiliki alamat IPv6. Tidak ada penyesuaian yang diperlukan untuk AWS Batch dukungan. Namun, sebelum memulai, kami sarankan Anda meninjau pertimbangan dan ketentuan yang diuraikan dalam Menetapkan alamat IPv6 ke pod dan layanan di Panduan Pengguna Amazon EKS.