Amazon EKS 시작 템플릿 사용자 지정 - AWS Batch

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EKS 시작 템플릿 사용자 지정

Amazon EKS의 AWS Batch는 시작 템플릿을 지원합니다. 시작 템플릿으로 수행할 수 있는 작업에는 제약이 있습니다.

중요

AWS Batch는 /etc/eks/bootstrap.sh를 실행합니다. 시작 템플릿이나 cloud-init user-data 스크립트에서 /etc/eks/bootstrap.sh를 실행하지 않습니다. --kubelet-extra-args 파라미터 외에 다른 파라미터를 bootstrap.sh로 추가할 수 있습니다. 이렇게 하려면 /etc/aws-batch/batch.config 파일에 AWS_BATCH_KUBELET_EXTRA_ARGS 변수를 설정합니다. 자세한 내용은 다음 예제를 참조하세요.

참고

CreateComputeEnvironment를 호출한 후 시작 템플릿이 변경된 경우 UpdateComputeEnvironment를 호출하여 교체할 시작 템플릿의 버전을 평가해야 합니다.

kubelet 추가 인수 추가

AWS Batch는 kubelet 명령에 추가 인수를 추가하는 것을 지원합니다. 지원되는 파라미터 목록은 Kubernetes 설명서kubelet 섹션을 참조하세요. 다음 예제에서는 --node-labels mylabel=helloworldkubelet 명령줄에 추가됩니다.

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 환경 변수를 사용하여 관리형 노드에서 컨테이너 런타임을 구성할 수 있습니다. 다음 예제에서는 컨테이너 런타임을 containerd 실행 시점의 bootstrap.sh로 설정합니다. 자세한 내용은 Kubernetes 설명서containerd 섹션을 참조하세요.

참고

CONTAINER_RUNTIME 환경 변수는 bootstrap.sh--container-runtime 옵션과 동일합니다. 자세한 내용은 Kubernetes 설명서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 packagesruncmd 설정이 사용됩니다. 자세한 내용은 cloud-init 설명서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==--

작업에서 이 볼륨을 사용하려면 RegisterJobDefinition에 대한 eksProperties 파라미터에 이 볼륨을 추가해야 합니다. 다음 예제는 작업 정의의 많은 부분입니다.

{ "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 주소 할당에 설명된 고려 사항 및 조건을 검토하는 것이 좋습니다.