本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Batch 在 Amazon 上,EKS 支持启动模板。启动模板的功能受到限制。
重要
AWS Batch 运行/etc/eks/bootstrap.sh
。不要/etc/eks/bootstrap.sh
在你的启动模板中运行或 cloud-init user-data 脚本。除了 bootstrap.sh--kubelet-extra-args
参数外,还可以添加其他参数。为此,请在AWS_BATCH_KUBELET_EXTRA_ARGS
文件中设置/etc/aws-batch/batch.config
变量。详情请参阅以下示例。
注意
如果在调用后CreateComputeEnvironment更改了启动模板,UpdateComputeEnvironment必须调用才能评估要替换的启动模板的版本。
添加 kubelet
额外参数
AWS Batch 支持在kubelet
命令中添加额外的参数。有关支持的参数列表,请参见 kubelet
已添加到--node-labels mylabel=helloworld
kubelet
命令行中。
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==--
配置容器运行时系统
您可以使用 AWS Batch CONTAINER_RUNTIME
环境变量在托管节点上配置容器运行时。以下示例将容器运行时系统设置为“bootstrap.sh
运行时containerd
”。有关更多信息,请参阅《》 中的 containerd
注意
CONTAINER_RUNTIME
环境变量等同于bootstrap.sh
的--container-runtime
选项。有关更多信息,请参阅 Options
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==--
挂载 Amazon EFS 卷
可以使用启动模板将卷装载到节点上。在以下示例中,使用了cloud-config
packages
和runcmd
设置。有关更多信息,请参阅中的 Cloud 配置示例
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==--
要在作业中使用此卷,必须将其添加到 eksPro perties 参数中。RegisterJobDefinition以下示例是作业定义的一大部分。
{
"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
"
}
}
]
}
}
}
在节点中,Amazon EFS 卷装载在/mnt/efs
目录中。在 Amazon EKS 作业的容器中,卷装载在 /efs
目录中。
IPv6 支持
AWS Batch 支持具有 IPv6 地址的 Amazon EKS 集群。无需自定义即可获得 AWS Batch 支持。但是,在开始之前,我们建议您查看 Amazon EKS 用户指南中为容器和服务分配 IPv6 地址中概述的注意事项和条件。