이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
Fargate 포드 구성 세부 정보 이해
이 섹션에서는 AWS Fargate에서 Kubernetes 포드를 실행하기 위한 몇 가지 고유한 포드 구성 세부 정보에 대해 설명합니다.
포드 CPU 및 메모리
Kubernetes를 사용하면 포드의 각 컨테이너에 할당되는 요청, 즉 최소량의 vCPU 및 메모리 리소스를 정의할 수 있습니다. 최소한 각 포드에 대해 요청된 리소스를 컴퓨팅 리소스에서 사용할 수 있도록 Kubernetes에서 포드를 예약합니다. 자세한 내용은 Kubernetes 설명서의 컨테이너의 컴퓨팅 리소스 관리
참고
Amazon EKS Fargate는 노드당 하나의 포드만 실행하므로 리소스가 더 적은 경우 포드를 제거하는 시나리오가 발생하지 않습니다. 모든 Amazon EKS Fargate 포드는 보장된 우선순위로 실행되므로 요청된 CPU와 메모리는 모든 컨테이너의 한도와 같아야 합니다. 자세한 내용은 쿠버네티스 문서의 Configure Quality of Service for Pods
포드가 Fargate에 예약되면 포드 사양 내의 vCPU 및 메모리 예약에 따라 포드에 프로비저닝할 CPU 및 메모리 양이 결정됩니다.
-
Init 컨테이너의 최대 요청은 Init 요청 vCPU 및 메모리 요구 사항을 결정하는 데 사용됩니다.
-
장기 실행 요청 vCPU 및 메모리 요구 사항을 결정하기 위해 모든 장기 실행 컨테이너에 대한 요청이 추가됩니다.
-
포드에 사용할 vCPU 및 메모리 요청에 대해서는 이전의 두 값 중 큰 값이 선택됩니다.
-
Fargate는 필요한 Kubernetes 구성 요소(
kubelet
,kube-proxy
및containerd
)에 대한 각 포드의 메모리 예약에 256MB를 추가합니다.
Fargate는 포드가 실행해야 하는 리소스를 항상 보유하도록 vCPU 및 메모리 요청의 합계와 가장 일치하는 다음의 컴퓨팅 구성으로 올림 처리합니다.
vCPU 및 메모리 조합을 지정하지 않으면 사용 가능한 가장 작은 조합(.25 vCPU 및 0.5GB 메모리)이 사용됩니다.
아래 표에는 Fargate에서 실행되는 포드에 사용할 수 있는 vCPU 및 메모리 조합이 나와 있습니다.
vCPU 값 | 메모리 값 |
---|---|
.25 vCPU |
0.5GB, 1GB, 2GB |
.5 vCPU |
1GB, 2GB, 3GB, 4GB |
1 vCPU |
2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB |
2 vCPU |
4~16GB(1GB 증분) |
4 vCPU |
8~30GB(1GB 증분) |
8 vCPU |
16~60GB(4GB 단위) |
16 vCPU |
32~120GB(8GB 단위) |
Kubernetes 구성 요소에 예약된 추가 메모리로 인해 요청된 것보다 많은 vCPU를 사용하는 Fargate 태스크가 프로비저닝될 수 있습니다. 예를 들어 1개의 vCPU 및 8GB 메모리에 대한 요청의 경우 해당 메모리 요청에 256MB가 추가되며, vCPU 1개와 9GB 메모리를 사용하는 태스크가 없으므로 2개의 vCPU 및 9GB 메모리로 Fargate 태스크를 프로비저닝합니다.
Fargate에서 실행 중인 포드의 크기와 kubectl get nodes
를 사용하여 Kubernetes가 보고하는 노드 크기 사이에는 상관 관계가 없습니다. 보고된 노드 크기는 대개 포드의 용량보다 큽니다. 다음 명령을 사용하여 포드 용량을 확인할 수 있습니다. default
를 포드의 네임스페이스로, pod-name
을 포드의 이름으로 바꿉니다.
kubectl describe pod --namespace default pod-name
예제 출력은 다음과 같습니다.
[...] annotations: CapacityProvisioned: 0.25vCPU 0.5GB [...]
CapacityProvisioned
주석은 적용된 포드 용량을 나타내며 Fargate에서 실행되는 포드의 비용을 결정합니다. 이러한 컴퓨팅 구성에 대한 요금 정보는 AWS Fargate 요금
Fargate 스토리지
Fargate에서 실행되는 포드는 수동 드라이버 설치 단계 없이 Amazon EFS 파일 시스템을 자동으로 탑재합니다. Fargate 노드에는 동적 영구 볼륨 프로비저닝을 사용할 수 없지만 고정적인 프로비저닝은 사용할 수 있습니다. 자세한 내용은 GitHub에서 Amazon EFS CSI 드라이버
프로비저닝이 완료되면 Fargate에서 실행되는 각 포드는 기본적으로 20GiB의 임시 스토리지를 받습니다. 이 유형의 스토리지는 포드가 중지된 후에 삭제됩니다. Fargate에서 시작된 새 포드에는 임시 스토리지 볼륨의 암호화가 기본적으로 활성화되어 있습니다. 임시 포드 스토리지는 AWS Fargate 관리형 키를 사용하여 AES-256 암호화 알고리즘으로 암호화됩니다.
참고
Fargate에서 실행되는 Amazon EKS 포드의 기본 가용 스토리지는 20GiB 미만입니다. 이는 일부 공간을 kubelet
및 포드 내부에 로드되는 기타 Kubernetes 모듈에서 사용하기 때문입니다.
임시 스토리지의 총량은 최대 175GiB까지 높일 수 있습니다. Kubernetes를 사용하여 크기를 구성하려면 포드의 각 컨테이너에 대한 ephemeral-storage
리소스 요청을 지정합니다. Kubernetes 가 포드를 예약할 때 이는 각 포드에 대한 리소스 요청의 합계가 Fargate 태스크의 용량보다 작도록 보장합니다. 자세한 내용은 쿠버네티스 문서의 포드 및 컨테이너 리소스 관리
Amazon EKS Fargate는 시스템 사용 목적으로 요청한 것보다 더 많은 임시 스토리지를 프로비저닝합니다. 예를 들어, 100GiB를 요청하면 Fargate 작업에 115GiB의 임시 스토리지가 프로비저닝됩니다.