Fargate Pod 구성 세부 정보 이해 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

Fargate Pod 구성 세부 정보 이해

중요

Amazon EKS가 있는 AWS Fargate은 AWS GovCloud(미국 동부) 및 AWSGovCloud(미국 서부)를 제외한 모든 Amazon EKS 지역에서 사용할 수 있습니다.

이 섹션에서는 AWS Fargate에서 Kubernetes Pods를 실행하기 위한 몇 가지 고유한 Pod 구성 세부 정보에 대해 설명합니다.

Pod CPU 및 메모리

Kubernetes을(를) 사용하여 Pod에서 각 컨테이너에 할당되는 요청, 최소 vCPU 양 및 메모리 리소스를 정의할 수 있습니다. Kubernetes에서 Pods을(를) 스케줄링하여 최소한 각 Pod에 대해 요청된 리소스가 컴퓨팅 리소스에서 사용 가능하도록 합니다. 자세한 내용을 알아보려면 Kubernetes 설명서의 컨테이너의 컴퓨팅 리소스 관리를 참조하세요.

참고

Amazon EKS Fargate는 노드당 하나의 Pod만 실행하므로 리소스가 더 적은 경우 Pods를 제거하는 시나리오가 발생하지 않습니다. 모든 Amazon EKS Fargate Pods는 보장된 우선순위로 실행되므로 요청된 CPU와 메모리는 모든 컨테이너의 한도와 같아야 합니다. 자세한 내용을 알아보려면 Kubernetes 문서의 Pods에 대한 서비스 품질 구성을 참조하세요.

Pods가 Fargate에 예약되면 Pod 사양 내의 vCPU 및 메모리 예약에 따라 Pod에 프로비저닝할 CPU 및 메모리 양이 결정됩니다.

  • Init 컨테이너의 최대 요청은 Init 요청 vCPU 및 메모리 요구 사항을 결정하는 데 사용됩니다.

  • 장기 실행 요청 vCPU 및 메모리 요구 사항을 결정하기 위해 모든 장기 실행 컨테이너에 대한 요청이 추가됩니다.

  • Pod에 사용할 vCPU 및 메모리 요청에 대해서는 이전의 두 값 중 큰 값이 선택됩니다.

  • Fargate는 필요한 Kubernetes 구성 요소(kubelet, kube-proxy, containerd)에 대한 각 Pod의 메모리 예약에 256MB를 추가합니다.

Fargate는 Pods가 실행해야 하는 리소스를 항상 보유하도록 vCPU 및 메모리 요청의 합계와 가장 일치하는 다음의 컴퓨팅 구성으로 올림 처리합니다.

vCPU 및 메모리 조합을 지정하지 않으면 사용 가능한 가장 작은 조합(.25 vCPU 및 0.5GB 메모리)이 사용됩니다.

아래 표에는 Fargate에서 실행되는 Pods에 사용할 수 있는 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에서 실행 중인 Pod의 크기와 kubectl get nodes를 사용하여 Kubernetes가 보고하는 노드 크기 사이에는 상관 관계가 없습니다. 보고된 노드 크기는 대개 Pod의 용량보다 큽니다. 다음 명령을 사용하여 Pod 용량을 확인할 수 있습니다. default을(를) Pod의 네임스페이스로, pod-name을(를) Pod의 이름으로 바꿉니다.

kubectl describe pod --namespace default pod-name

예제 출력은 다음과 같습니다.

[...]
annotations:
    CapacityProvisioned: 0.25vCPU 0.5GB
[...]

CapacityProvisioned 주석은 적용된 Pod 용량을 나타내며 Fargate에서 실행되는 Pod의 비용을 결정합니다. 이러한 컴퓨팅 구성에 대한 요금 정보는 AWS Fargate 요금 책정을 참조하세요.

Fargate 스토리지

Fargate에서 실행되는 Pod은(는) Amazon EFS 파일 시스템을 자동으로 탑재합니다. Fargate 노드에는 동적 영구 볼륨 프로비저닝을 사용할 수 없지만 고정적인 프로비저닝은 사용할 수 있습니다. 자세한 내용은 GitHub에서 Amazon EFS CSI 드라이버를 참조하세요.

프로비저닝 시 각 Fargate에서 Pod을(를) 실행하면 기본 20GiB의 임시 스토리지가 제공됩니다. 이 유형의 스토리지는 Pod이(가) 중지된 후에 삭제됩니다. Fargate에서 시작된 새 Pods에는 임시 스토리지 볼륨의 암호화가 기본적으로 활성화되어 있습니다. 임시 Pod 스토리지는 AWS Fargate 관리형 키를 사용하여 AES-256 암호화 알고리즘으로 암호화됩니다.

참고

Fargate에서 Pods이(가) 실행하는 Amazon EKS의 기본 가용 스토리지는 20GiB 미만입니다. 이는 일부 공간을 kubelet 및 Pod 내부에 로드되는 기타 Kubernetes 모듈에서 사용하기 때문입니다.

임시 스토리지의 총량은 최대 175GiB까지 높일 수 있습니다. Kubernetes을(를) 사용하여 크기를 구성하려면 Pod의 각 컨테이너에 대한 ephemeral-storage 리소스 요청을 지정합니다. Kubernetes이(가) Pods을(를) 스케줄링할 때 이는 각 Pod에 대한 리소스 요청의 합계가 Fargate 작업의 용량보다 작도록 보장합니다. 자세한 내용은 Kubernetes 문서의 Pods 및 컨테이너 리소스 관리를 참조하세요.

Amazon EKS Fargate는 시스템 사용 목적으로 요청한 것보다 더 많은 임시 스토리지를 프로비저닝합니다. 예를 들어 100GiB를 요청하면 Fargate 작업에 115GiB의 임시 스토리지가 프로비저닝됩니다.