協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格的 GitHub 上的編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在叢集中排程 Fargate 上的 Pod 之前,您必須定義至少一個 Fargate 設定檔,指定啟動時使用 Fargate 的 Pod。
身為管理員,您可以使用 Fargate 設定檔來宣告在 Fargate 上執行的 Pod。您可以透過設定檔的選取器來執行此操作。您最多可以將五個選取器新增至每個設定檔。每個選取器必須包含一個命名空間。選取器還可以包括標籤。標籤欄位由多個選用鍵/值對組成。與選取器相符的 Pod 會排程在 Fargate 上執行。比對 Pod 時,會使用命名空間和在選取器中指定的標籤。如果命名空間選擇器定義沒有標籤,Amazon EKS 會嘗試使用 設定檔,將在該命名空間中執行的所有 Pod 排程到 Fargate。如果to-be-scheduled Pod 符合 Fargate 設定檔中的任何選擇器,則該 Pod 會排程在 Fargate 上。
如果 Pod 符合多個 Fargate 設定檔,您可以透過將下列 Kubernetes 標籤新增至 Pod 規格來指定 Pod 使用的設定檔:eks.amazonaws.com/fargate-profile: my-fargate-profile
。Pod 必須符合該設定檔中的選擇器,才能排程到 Fargate。Kubernetes 親和性/反親和性規則不適用,而且 Amazon EKS Fargate Pod 不需要。
建立 Fargate 設定檔時,您必須指定 Pod 執行角色。此執行角色適用於使用設定檔在 Fargate 基礎設施上執行的 Amazon EKS 元件。它會新增至叢集的 Kubernetes 角色型存取控制 kubelet
就可以註冊到您的 Amazon EKS 叢集,並作為節點出現在您的叢集中。Pod 執行角色也提供 Fargate 基礎設施的 IAM 許可,以允許對 Amazon ECR 映像儲存庫的讀取存取權。如需詳細資訊,請參閱Amazon EKS Pod 執行 IAM 角色。
Fargate 設定檔無法變更。不過,您可以建立新的已更新設定檔來取代現有設定檔,然後刪除原始的設定檔。
注意
刪除設定檔時,使用 Fargate 設定檔執行的任何 Pod 都會停止並進入擱置狀態。
如果在叢集中的任何 Fargate 設定檔處於 DELETING
狀態,您必須等候該 Fargate 設定檔刪除後,才能在該叢集建立任何其他設定檔。
注意
Fargate 目前不支援 Kubernetes topologySpreadConstraints
Amazon EKS 和 Fargate 會將 Pod 分散到 Fargate 設定檔中定義的每個子網路。不過,最終可能會產生不均勻的散佈結果。如果必須產生均勻的散佈結果,請使用兩個 Fargate 設定檔。即使在您想要部署兩個複本,但不想要任何停機時間的情況下,甚至分散也很重要。我們建議每個設定檔只定義一個子網路。
Fargate 描述檔元件
下列元件包含在 Fargate 描述檔中。
- Pod 執行角色
-
當您的叢集在 AWS Fargate 上建立 Pod
kubelet
時,在 Fargate 基礎設施上執行的 必須代表您呼叫 AWS APIs。例如,它必須透過呼叫從 Amazon ECR 提取容器映像。Amazon EKS Pod 執行角色提供執行此操作的 IAM 許可。建立 Fargate 設定檔時,您必須指定要與 Pod 搭配使用的 Pod 執行角色。此角色會新增至叢集的 Kubernetes 角色型存取控制
(RBAC) 以進行授權。如此一來 kubelet
,在 Fargate 基礎設施上執行的 就可以向 Amazon EKS 叢集註冊,並顯示為節點。如需詳細資訊,請參閱Amazon EKS Pod 執行 IAM 角色。 - 子網路
-
使用此設定檔在 中啟動 Pod 的子網路 IDs。目前,在 Fargate 上執行的 Pod 不會指派公有 IP 地址。因此,此參數僅接受私有子網路 (不具網際網路閘道的直接路由)。
- 選取器
-
Pod 使用此 Fargate 設定檔時要比對的選取器。您最多可在一個 Fargate 設定檔中指定五個選取器。選取器具有下列元件:
-
命名空間:您必須指定選取器的命名空間。選擇器僅符合在此命名空間中建立的 Pod。不過,您可以建立多個選取器來定義多個命名空間。
-
標籤:您可以選擇指定符合選取器的 Kubernetes 標籤。選擇器只比對具有選擇器中指定之所有標籤的 Pod。
-
Fargate 設定檔萬用字元
除了 Kubernetes 允許的字元之外,您還可以在命名空間、標籤索引鍵*
和標籤值的選擇器條件?
中使用 和 :
-
*
代表無、一個或多個字元。例如,prod*
可以代表prod
和prod-metrics
。 -
?
代表單一字元 (例如,value?
可以代表valuea
)。不過,它不能代表value
和value-a
,因為?
只能代表確切一個字元。
這些萬用字元適用於任何位置和組合 (例如,prod*
、*dev
,以及 frontend*?
)。其他萬用字元和模式比對形式 (例如規則運算式) 則不支援。
如果 Pod 規格中有多個命名空間和標籤相符的設定檔,Fargate 會根據設定檔名稱的英數字元排序來挑選設定檔。例如,如果設定檔 A (名稱為 beta-workload
) 和設定檔 B (名稱為 prod-workload
) 都具有要啟動的 Pod 的相符選擇器,則 Fargate 會為 Pod 挑選設定檔 A (beta-workload
)。Pod 在 Pod 上具有設定檔 A 的標籤 (例如,eks.amazonaws.com/fargate-profile=beta-workload
)。
如果您想要將現有的 Fargate Pod 遷移到使用萬用字元的新設定檔,有兩種方法可以執行此操作:
-
使用相符的選取器建立新的設定檔,然後刪除舊設定檔。標有舊設定檔的 Pod 會重新排程為新的相符設定檔。
-
如果您想要遷移工作負載,但不確定每個 Fargate Pod 上有哪些 Fargate 標籤,您可以使用下列方法。建立新的設定檔,其名稱在同一叢集上的設定檔中按英數字元順序排列在第一位。然後,回收需要遷移至新設定檔的 Fargate Pod。
建立 Fargate 設定檔
本節說明如何建立 Fargate 設定檔。您還必須已建立 Pod 執行角色,以用於 Fargate 設定檔。如需詳細資訊,請參閱Amazon EKS Pod 執行 IAM 角色。在 Fargate 上執行的 Pod 僅支援具有 NAT 閘道存取 AWS 服務的私有子網路,但不支援直接路由至網際網路閘道。這樣您叢集的 VPC 必須具有可用的私有子網路。
您可以使用下列項目建立設定檔:
eksctl
使用 建立 Fargate 設定檔 eksctl
使用下列eksctl
命令建立 Fargate 設定檔,以您自己的值取代每個範例值。您必須指定命名空間。不過, --labels
選項並非必要項目。
eksctl create fargateprofile \ --cluster my-cluster \ --name my-fargate-profile \ --namespace my-kubernetes-namespace \ --labels key=value
對於 my-kubernetes-namespace
和 key=value
標籤可以使用某些萬用字元。如需詳細資訊,請參閱Fargate 設定檔萬用字元。
AWS Management Console
使用 建立 Fargate 設定檔 AWS Management Console
-
開啟 Amazon EKS 主控台
。 -
選擇要為其建立 Fargate 設定檔的叢集。
-
選擇 Compute (運算) 索引標籤。
-
在 Fargate profiles (Fargate 設定檔) 下,選擇 Add Fargate profile (新增 Fargate 設定檔)。
-
在 Configure Fargate profile (設定 Fargate 設定檔) 頁面上,執行以下作業:
-
對於 Name (名稱),輸入 Fargate 設定檔的唯一名稱,例如
my-profile
。 -
針對 Pod 執行角色,選擇要搭配 Fargate 設定檔使用的 Pod 執行角色。只會顯示具有
eks-fargate-pods.amazonaws.com
服務委託人的 IAM 角色。如果您沒有看到任何列出的角色,則必須建立一個角色。如需詳細資訊,請參閱Amazon EKS Pod 執行 IAM 角色。 -
視需要修改選取的子網路。
注意
在 Fargate 上執行的 Pod 僅支援私有子網路。
-
對於 Tags (標籤),您可以選擇標記 Fargate 設定檔。這些標籤不會傳播到與設定檔相關聯的其他資源,例如 Pod。
-
選擇 Next (下一步)。
-
-
在設定 Pod 選擇頁面上,執行下列動作:
-
針對命名空間,輸入要比對的 Pod 命名空間。
-
您可以使用特定的命名空間進行比對,例如
kube-system
或default
。 -
您可以使用某些萬用字元 (例如
prod-*
) 來比對多個命名空間 (例如prod-deployment
和prod-test
)。如需詳細資訊,請參閱Fargate 設定檔萬用字元。
-
-
(選用) 將 Kubernetes 標籤新增至選取器。具體而言,將它們新增至指定命名空間中的 Pod 需要比對的 Pod。
-
您可以將標籤新增至
infrastructure: fargate
選取器,以便只有指定命名空間中也有 Kubernetesinfrastructure: fargate
標籤的 Pod 符合選取器。 -
您可以使用某些萬用字元 (例如
key?: value?
) 來比對多個命名空間 (例如keya: valuea
和keyb: valueb
)。如需詳細資訊,請參閱Fargate 設定檔萬用字元。
-
-
選擇 Next (下一步)。
-
-
在 Review and create (檢閱和建立) 頁面,檢閱您 Fargate 設定檔的資訊並選擇 Create (建立)。