Fargate Pod 組態 - Amazon EKS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Fargate Pod 組態

重要

AWS FargateAmazon EKS 在 AWS GovCloud (美國東部)和 AWS GovCloud (美國西部)中不可用。

本節會描述部分適用於在 AWS Fargate 上執行 Kubernetes Pods 的專用 Pod 組態詳細資訊。

Pod CPU 和記憶體

運用 Kubernetes,您可以定義請求、最小 vCPU 數量,以及分配給 Pod 中每個容器的記憶體資源。Kubernetes 會排程 Pods,藉此確保為每個 Pod 所請求的資源均可在計算資源上使用。如需詳細資訊,請參閱 Kubernetes 文件中的管理容器的運算資源

注意

由於 Amazon EKS Fargate 的每個節點僅會執行一個 Pod,因此不會發生在資源較少的情況下將 Pods 移出的情況。所有 Amazon EKS Fargate Pods 都是以保證優先順序的方式執行,因此請求的 CPU 和記憶體必須等同於所有容器的限制。如需詳細資訊,請參閱 Kubernetes 文件中的設定 Pods 的服務品質

當 Pods 在 Fargate 上排程時,在 Pod 規格內的 vCPU 與記憶體保留決定了多少 CPU 和記憶體會佈建給 Pod。

  • 任何 Init 容器的最大請求用於判斷 Init 請求 vCPU 和記憶體需求。

  • 所有長期執行容器的請求會加總,以判斷長期執行請求 vCPU 和記憶體需求。

  • 先前兩個值中較大的值會選擇作為用於您 Pod 的 vCPU 和記憶體請求。

  • Fargate 會將 256 MB 新增至所需 Kubernetes 元件之每個 Pod 的記憶體保留 (kubeletkube-proxycontainerd)。

Fargate 會四捨五入至以下最接近 vCPU 和記憶體請求總和的運算組態,以確保 Pods 隨時擁有其執行所需的資源。

若您未指定 vCPU 和記憶體的組合,則會使用最小可用的組合 (.25 vCPU 和 0.5 GB 記憶體)。

下表顯示可用於在 Fargate 上執行之 Pods 的 vCPU 和記憶體組合。

vCPU 數值

記憶體數值

.25 vCPU

0.5 GB、1 GB、2 GB

.5 vCPU

1 GB、2 GB、3 GB、4 GB

1 vCPU

2 GB、3 GB、4 GB、5 GB、6 GB、7 GB、8 GB

2 vCPU

介於 4 GB 與 16 GB 之間,以 1 GB 為單位遞增

4 vCPU

介於 8 GB 與 30 GB 之間,以 1 GB 為單位遞增

8 vCPU

介於 16 GB 與 60 GB 之間,以 4 GB 為單位遞增

16 vCPU

介於 32 GB 與 120 GB 之間,以 8 GB 為單位遞增

為 Kubernetes 元件預訂的額外記憶體,可能會導致 Fargate 任務佈建了超出原先請求數量的 vCPU。例如,對 1 個 vCPU 和 8 GB 記憶體的請求將會新增 256 MB 至其記憶體請求,並且會佈建具有 2 個 vCPU 和 9 GB 記憶體的 Fargate 任務,因為沒有任何具有 1 個 vCPU 和 9 GB 記憶體的可用任務。

在 Fargate 上執行的 Pod 大小,與 Kubernetes 使用 kubectl get nodes 報告的節點大小之間沒有相關性。報告的節點大小通常大於 Pod 的容量。您可以使用下列命令確認 Pod 容量。以您 Pod 的命名空間來取代 default,並以您 Pod 的名稱來取代 pod-name

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 節點搭配使用,但可以使用靜態佈建。如需詳細資訊,請參閱上的 Amazon EFS CSI 驅動程式 GitHub。

佈建時,在 Fargate 上執行的每個 Pod 均會收到預設 20 GiB 的暫時性儲存。此類型的儲存會在 Pod 停止後刪除。在 Fargate 上啟動的新 Pods,預設皆會啟用暫時性儲存磁碟區的加密。暫時性 Pod 儲存會以使用 AWS Fargate 受管金鑰的 AES-256 加密演算法來加密。

注意

在 Fargate 上執行的 Amazon EKS Pods 預設可用儲存空間少於 20 GiB。這是因為部分空間由 Pod 內部載入的 kubelet 和其他 Kubernetes 模組使用。

您可以增加暫時性儲存的總量,最多可達 175 GiB。若要使用 Kubernetes 設定大小,請將 ephemeral-storage 資源的請求指定到 Pod 中的每個容器。當 Kubernetes 排程了 Pods,它可以確保每個 Pod 的資源請求總計少於 Fargate 任務的容量。如需詳細資訊,請參閱 Kubernetes 文件中的適用於 Pods 和容器的資源管理

Amazon EKS Fargate 佈建的暫時性儲存空間比系統使用目的之要求更多。例如,100 GiB 的請求將佈建具有 115 GiB 暫時性儲存的 Fargate 任務。