

 **協助改進此頁面** 

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

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

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

# 了解 Fargate Pod 組態詳細資訊
<a name="fargate-pod-configuration"></a>

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

## Pod CPU 和記憶體
<a name="fargate-cpu-and-memory"></a>

透過 Kubernetes，您可定義請求、最低 vCPU 數量，以及配置給 Pod 中每個容器的記憶體資源。Pod 是由 Kubernetes 排程，以確保至少每個 Pod 的請求資源可在運算資源上使用。如需詳細資訊，請參閱 Kubernetes 文件中的[管理容器的運算資源](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/)。

**注意**  
由於 Amazon EKS Fargate 的每個節點僅會執行一個 Pod，因此不會發生在資源較少的情況下將 Pod 移出的情況。所有 Amazon EKS Fargate Pod 都是以保證優先順序的方式執行，因此請求的 CPU 和記憶體必須等同於所有容器的限制。如需詳細資訊，請參閱《Kubernetes 說明文件》中的[設定 Pod 的服務品質](https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/)。

當 Pod 在 Fargate 上排程時，在 Pod 規格內的 vCPU 與記憶體保留決定了多少 CPU 和記憶體會佈建給 Pod。
+ 任何 Init 容器的最大請求用於判斷 Init 請求 vCPU 和記憶體需求。
+ 所有長期執行容器的請求會加總，以判斷長期執行請求 vCPU 和記憶體需求。
+ 先前兩個值中較大的值會選擇作為用於您 Pod 的 vCPU 和記憶體請求。
+ Fargate 會將 256 MB 新增至所需 Kubernetes 元件之每個 Pod 的記憶體保留 (`kubelet`、`kube-proxy` 和 `containerd`)。

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

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

下表顯示可用於在 Fargate 上執行之 Pod 的 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 的命名空間來取代*預設*，並以您 Pod 的名稱來取代 *pod-name*。

```
kubectl describe pod --namespace default pod-name
```

範例輸出如下。

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

`CapacityProvisioned` 註釋代表強制執行的 Pod 容量，並決定在 Fargate 上執行 Pod 的成本。如需運算組態的定價資訊，請參閱 [AWS Fargate 定價](https://aws.amazon.com/fargate/pricing/)。

## Fargate 儲存
<a name="fargate-storage"></a>

在 Fargate 上執行的 Pod 會自動掛載 Amazon EFS 檔案系統，而無需執行手動驅動程式安裝步驟。您不能將動態持久性磁碟區佈建與 Fargate 節點搭配使用，但可以使用靜態佈建。如需詳細資訊，請參閱 GitHub 上的 [Amazon EFS CSI 驅動程式](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/docs/README.md)。

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

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

您可以增加暫時性儲存的總量，最多可達 175 GiB。若要使用 Kubernetes 設定大小，請將 `ephemeral-storage` 資源的請求指定到 Pod 中的每個容器。當 Kubernetes 排程了 Pod，它可以確保每個 Pod 的資源請求總計少於 Fargate 任務的容量。如需詳細資訊，請參閱 Kubernetes 文件中的 [Pod 和容器的資源管理](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/)。

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