이 페이지 개선에 도움 주기
이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.
최적화된 Amazon Linux AMI를 사용한 노드 생성
Amazon EKS 최적화 Amazon Linux AMI는 Amazon Linux 2(AL2) 및 Amazon Linux 2023(AL2023) 기반으로 빌드됩니다. Amazon EKS 노드의 기본 이미지 역할을 하도록 구성되었습니다. AMI는 Amazon EKS와 연동하도록 구성되며 다음과 같은 구성 요소가 포함됩니다.
-
kubelet
-
AWS IAM 인증자
-
Docker(Amazon EKS 버전
1.23
이하) -
containerd
참고
-
Amazon Linux 보안 센터
에서 AL2의 보안 또는 프라이버시 이벤트를 추적하거나 관련 RSS 피드 를 구독할 수 있습니다. 보안 및 프라이버시 이벤트에는 문제의 개요, 영향을 받는 패키지 및 인스턴스를 업데이트하여 문제를 해결하는 방법이 포함됩니다. -
가속 또는 Arm AMI를 배포하기 전에 Amazon EKS 최적화 가속 Amazon Linux AMI 및 Amazon EKS 최적화 Arm Amazon Linux AMI의 정보를 검토하세요.
-
Kubernetes 버전
1.23
의 경우 선택적 부트스트랩 플래그를 사용하여 Docker에서containerd
로의 마이그레이션을 테스트할 수 있습니다. 자세한 내용은 Docker에서 containerd로 Amazon Linux 2 마이그레이션 테스트 단원을 참조하십시오. -
Kubernetes 버전
1.25
부터 Amazon EKS 최적화 가속 Amazon Linux AMI와 함께 즉시 사용 가능한 Amazon EC2P2
인스턴스를 더 이상 사용할 수 없습니다. Kubernetes 버전1.25
이상의 이러한 AMI는P2
인스턴스와 호환되지 않는NVIDIA 525
이후 시리즈의 드라이버를 지원합니다. 하지만NVIDIA 525
이후 시리즈의 드라이버는P3
,P4
, 및P5
인스턴스와 호환되므로 이러한 인스턴스를 Kubernetes 버전1.25
이상의 AMI와 함께 사용할 수 있습니다. Amazon EKS 클러스터를 버전1.25
로 업그레이드하기 전에P2
인스턴스를P3
,P4
및P5
인스턴스로 마이그레이션하세요. 또한,NVIDIA 525
이후 시리즈에서 작동하려면 애플리케이션을 사전에 업그레이드해야 합니다. 2024년 1월 말에 최신NVIDIA 525
시리즈 이상의 드라이버를 Kubernetes 버전1.23
및1.24
로 백포팅할 계획입니다. -
버전
1.30
이상의 클러스터부터 새로 생성되는 모든 관리형 노드 그룹은 자동으로 AL2023을 기본 노드 운영 체제로 사용합니다. 이전에는 새 노드 그룹이 AL2를 기본 노드 운영 체제로 사용했습니다. 새 노드 그룹을 생성할 때 AL2를 AMI 유형으로 선택하여 계속 사용할 수 있습니다. -
AL2 지원은 2025년 6월 30일에 종료됩니다. 자세한 내용은 Amazon Linux 2 FAQs
를 참조하십시오.
Amazon EKS 최적화 가속 Amazon Linux AMI
참고
AL2023 기반의 Amazon EKS 가속 AMI는 향후에 제공될 예정입니다. 워크로드를 가속화하면 AL2 가속 AMI 또는 Bottlerocket을 계속 사용해야 합니다.
Amazon EKS 최적화 가속 Amazon Linux AMI는 표준 Amazon EKS 최적화 Amazon Linux AMI를 기반으로 구축되었습니다. 이는 GPU, Inferentia
표준 Amazon EKS 최적화 AMI 구성 외에도 가속 AMI에는 다음이 포함됩니다.
-
NVIDIA 드라이버
-
nvidia-container-runtime
-
AWS Neuron 드라이버
가속 AMI에 포함된 최신 구성 요소 목록은 GitHub의 amazon-eks-ami
릴리스
참고
-
Amazon EKS 최적화 가속 AMI는 GPU 및 Inferentia 기반 인스턴스 유형만 지원합니다. 노드 AWS CloudFormation 템플릿에서 이러한 인스턴스 유형을 지정해야 합니다. Amazon EKS에 최적화된 가속화 AMI를 사용하면 귀하는 NVIDIA의 클라우드 최종 사용자 라이선스 계약(EULA)
에 동의하게 됩니다. -
이전에는 Amazon EKS 최적화 가속 AMI를 GPU를 지원하는 Amazon EKS 최적화된 AMI라고 불렀습니다.
-
Amazon EKS 최적화 가속 AMI의 이전 버전에서는
nvidia-docker
리포지토리를 설치했습니다. Amazon EKS AMI 버전v20200529
이상에는 더 이상 이 리포지토리가 포함되지 않습니다.
AWS Neuron(ML 가속기) 기반 워크로드를 활성화하려면
Amazon EKS에서 Neuron을 사용하는 교육 및 추론 워크로드에 대한 자세한 내용은 다음 참조를 참조하세요.
-
AWS Neuron 설명서의 컨테이너 - Kubernetes - 시작하기
-
GitHub에서 AWS Neuron EKS 샘플의 훈련
GPU 기반 워크로드를 활성화하려면
다음 절차에서는 Amazon EKS 최적화 가속 AMI를 사용하여 GPU 기반 인스턴스에서 워크로드를 실행하는 방법에 대해 설명합니다.
-
GPU 노드가 클러스터에 조인하면 클러스터에서 Kubernetes용 NVIDIA 디바이스 플러그 인
을 DaemonSet(으)로 적용해야 합니다. 다음 명령을 실행하기 전에
을(를) 원하는 NVIDIA/k8s-device-pluginvX.X.X
버전으로 교체합니다. kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/
vX.X.X
/deployments/static/nvidia-device-plugin.yml -
다음 명령으로 노드에 할당 가능한 GPU가 있는지 확인할 수 있습니다.
kubectl get nodes "-o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu"
GPU 노드의 구성이 올바른지 테스트하기 위한 Pod 배포하기
-
다음 콘텐츠를 가진
nvidia-smi.yaml
이라는 파일을 생성합니다:
을(를) 원하는tag
nvidia/cuda
용 태그와 바꿉니다. 이 매니페스트는 노드에서 nvidia-smi
을(를) 실행하는 NVIDIA CUDA컨테이너를 시작합니다. apiVersion: v1 kind: Pod metadata: name: nvidia-smi spec: restartPolicy: OnFailure containers: - name: nvidia-smi image: nvidia/cuda:
tag
args: - "nvidia-smi" resources: limits: nvidia.com/gpu: 1 -
다음 명령으로 매니페스트를 적용합니다.
kubectl apply -f nvidia-smi.yaml
-
Pod 실행이 끝난 후, 다음 명령을 사용하여 로그를 확인합니다.
kubectl logs nvidia-smi
예제 출력은 다음과 같습니다.
Mon Aug 6 20:23:31 20XX
+-----------------------------------------------------------------------------+ | NVIDIA-SMIXXX.XX
Driver Version:XXX.XX
| |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla V100-SXM2... On | 00000000:00:1C.0 Off | 0 | | N/A 46C P0 47W / 300W | 0MiB / 16160MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
Amazon EKS 최적화 Arm Amazon Linux AMI
Arm 인스턴스는 웹 서버, 컨테이너식 마이크로서비스, 캐싱 플릿 및 분산 데이터 스토어와 같은 스케일 아웃 및 Arm 기반 애플리케이션에 상당한 비용 절감 효과를 제공합니다. 클러스터에 Arm 노드를 추가하는 경우 다음 고려 사항을 검토하세요.
고려 사항
-
클러스터가 2020년 8월 17일 이전에 배포된 경우 중요한 클러스터 추가 기능 매니페스트의 일회성 업그레이드를 수행해야 합니다. 이는 Kubernetes가 클러스터에서 사용 중인 각 하드웨어 아키텍처에 대해 올바른 이미지를 가져올 수 있도록 하기 위함입니다. 클러스터 추가 기능을 업데이트하는 방법에 대한 자세한 내용은 Amazon EKS 클러스터의 Kubernetes 버전 업데이트 부분을 참조하세요. 2020년 8월 17일 또는 이후에 클러스터를 배포한 경우는 이미 CoreDNS,
kube-proxy
및 Amazon VPC CNI plugin for Kubernetes가 다중 아키텍처를 지원합니다. -
Arm 노드에 배포된 애플리케이션은 Arm용으로 컴파일되어야 합니다.
-
기존 클러스터에 배포된 DaemonSets이 있거나, Arm 노드도 배포할 새 클러스터에 DaemonSet를 배포하려는 경우 DaemonSet가 클러스터의 모든 하드웨어 아키텍처에서 실행될 수 있는지 확인합니다.
-
동일한 클러스터에서 Arm 노드 그룹과 x86 노드 그룹을 실행할 수 있습니다. 이 경우에 다중 아키텍처 컨테이너 이미지를 Amazon Elastic Container Registry와 같은 컨테이너 리포지토리에 배포한 다음, 매니페스트에 노드 선택기를 추가하여 어떤 하드웨어에 Pod를 배포할 수 있는지 Kubernetes가 알 수 있도록 해야 합니다. 자세한 내용은 Amazon ECR 사용 설명서의 다중 아키텍처 이미지 푸시 및 Amazon ECR용 다중 아키텍처 컨테이너 이미지 소개
블로그 게시물을 참조하세요.
추가 정보
Amazon EKS 최적화 Amazon Linux AMI 사용에 대한 자세한 내용은 다음 섹션을 참조하세요.
-
관리형 노드 그룹과 함께 Amazon Linux를 사용하려면 관리형 노드 그룹을 사용한 노드 수명 주기 간소화 섹션을 참조하세요.
-
자체 관리형 Amazon Linux 노드를 시작하려면 권장 Amazon Linux AMI ID 검색 섹션을 참조하세요.
-
버전 정보는 Amazon Linux AMI 버전 정보 검색를 참조하십시오.
-
Amazon EKS 최적화 Amazon Linux AMI의 최신 ID를 검색하려면 권장 Amazon Linux AMI ID 검색 섹션을 참조하세요.
-
Amazon EKS 최적화 AMI를 빌드하는 데 사용되는 오픈 소스 스크립트는 스크립트를 사용한 사용자 지정 Amazon Linux AMI 빌드 섹션을 참조하세요.