協助改進此頁面
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
建立 Amazon EKS 自動模式叢集
本主題提供使用進階組態選項建立 Amazon EKS 自動模式叢集的詳細說明。內容涵蓋先決條件、聯網選項和附加元件組態。程序包括設定 IAM 角色、設定叢集設定、指定網路參數以及選取附加元件。使用者可使用 AWS 管理主控台 或 AWS CLI 建立叢集,兩種方法均提供逐步指引。
對於尋求較簡單設定程序的使用者,請參閱以下簡化叢集建立步驟:
本進階組態指指南適用於需要對其 EKS 自動模式叢集設定進行更精細控制,並熟悉 Amazon EKS 概念和要求的進階使用者。在繼續進行進階組態之前,請確保您已滿足所有先決條件,並徹底了解 EKS 自動模式叢集的聯網和 IAM 要求。
EKS 自動模式需要額外的 IAM 許可。如需詳細資訊,請參閱:
注意
如果您想建立沒有 EKS 自動模式的叢集,請參閱 建立 Amazon EKS 叢集。
本主題涵蓋進階組態。如果您剛開始使用 EKS 自動模式,請參閱 使用 Amazon EKS 自動模式建立叢集。
先決條件
-
現有 VPC 和子網符合 Amazon EKS 要求。部署叢集以供生產使用之前,建議您先徹底了解 VPC 和子網要求。如果您沒有 VPC 和子網路,您可以使用 Amazon EKS 提供的 AWS CloudFormation 範本建立。
-
已在裝置或 AWS CloudShell 上安裝
kubectl命令列工具。版本可以與您的叢集 Kubernetes 版本相同,或是為最多比該版本更舊一版或更新一版的次要版本。例如,如果您的叢集版本為1.29,則可以搭配使用kubectl1.28、1.29或1.30版。若要安裝或升級kubectl,請參閱 設定 kubectl 和 eksctl。 -
已在裝置或 AWS CloudShell 上安裝和設定 AWS 命令列介面 (AWS CLI) 版本
2.12.3或更新版本,或是版本1.27.160或更新版本。若要檢查您目前的版本,請使用aws --version。若要安裝最新版本,請參閱《AWS 命令列介面使用者指南》中的安裝與使用 aws configure 的快速組態。 -
具有建立修改 EKS 與 IAM 資源許可的 IAM 主體。
建立叢集 - AWS 主控台
-
開啟 Amazon EKS 主控台
。 -
選取 Add cluster (新增叢集),然後選取 Create (建立)。
-
在組態選項下,請選取自訂組態。
-
本主題涵蓋自訂組態。如需快速組態的資訊,請參閱 使用 AWS 管理主控台 建立 EKS 自動模式叢集。
-
-
確認使用 EKS 自動模式已啟用。
-
本主題涵蓋使用 EKS 自動模式建立叢集。有關建立無 EKS 自動模式的叢集的更多資訊,請參閱 建立 Amazon EKS 叢集。
-
-
在 Configure cluster (設定叢集) 頁面上,輸入下列欄位:
-
Name (名稱):叢集的名稱。名稱僅包含英數字元 (區分大小寫)、連字號和底線。必須以英數字元開頭,且長度不可超過 100 個字元。在您要建立叢集的 AWS 區域和 AWS 帳戶中,該名稱必須是唯一的。
-
叢集 IAM 角色:選擇您建立的 Amazon EKS 叢集 IAM 角色,以允許 Kubernetes 控制平面代表您來管理 AWS 資源。如果您先前尚未為 EKS 自動模式建立叢集 IAM 角色,請選取建立建議的角色按鈕,以在 IAM 主控台中建立具有所需許可的角色。
-
Kubernetes version (Kubernetes 版本) – 您的叢集使用的 Kubernetes 版本。我們建議選取最新版本,除非您需要較早版本。
-
升級政策:您要為叢集設定的 Kubernetes 版本政策。如果您希望叢集僅在標準支援版本上執行,可以選擇標準。如果您希望叢集在某個版本的標準支援結束時進入延伸支援,可以選擇延伸。如果您選擇的 Kubernetes 版本目前處於延伸支援狀態,則無法選取標準支援作為選項。
-
-
在設定叢集頁面的自動模式運算區段,輸入以下欄位:
-
節點集區:決定是否要使用內建節點集區。如需詳細資訊,請參閱 啟用或停用內建的 NodePool。
-
節點 IAM 角色:如果您啟用任何內建節點集區,則需要選取一個節點 IAM 角色。EKS 自動模式會將此角色分配給新節點。建立叢集之後,便無法變更此值。如果您先前尚未為 EKS 自動模式建立節點 IAM 角色,請選取建立建議的角色按鈕,以建立具有所需許可的角色。如需有關此角色的詳細資訊,請參閱 了解 EKS 自動模式中的身分和存取。
-
-
在設定叢集頁面的叢集存取部分,輸入以下欄位:
-
引導叢集管理員存取:叢集建立者自動成為 Kubernetes 管理員。如果您要停用此功能,請選擇不允許叢集管理員存取。
-
叢集身分驗證模式:EKS 自動模式需要 EKS 存取項目,也就是 EKS API 身分驗證模式。您可以選擇性地透過選擇 EKS API 和 ConfigMap 來啟用
ConfigMap身分驗證模式。
-
-
在設定叢集頁面上,輸入以下欄位:
-
Secrets encryption (秘密加密):(選用) 選擇使用 KMS 金鑰啟用 Kubernetes 秘密的秘密加密。您也可以在建立叢集後啟用此功能。啟用此功能之前,請確定您已熟悉 在現有叢集上使用 KMS 加密 Kubernetes 秘密 中的資訊。
-
ARC 區域轉移:EKS 自動模式不支援 ARC 區域轉移。
-
Tags (標籤) – (選用) 將任何標籤新增到您的叢集。如需詳細資訊,請參閱 使用標籤組織 Amazon EKS 資源。
完成此頁面後,請選擇下一步。
-
-
在 Specify networking (指定網路) 頁面上,選取下列欄位的值:
-
VPC:選擇符合 Amazon EKS VPC 要求的現有 VPC 來建立您的叢集。選擇 VPC 之前,建議您先熟悉 檢視 VPC 和子網路的 Amazon EKS 聯網需求 中的所有要求和考量事項。建立叢集後,您無法變更要使用的 VPC。如果沒有列出 VPC,則您需要先建立一個。如需詳細資訊,請參閱 為您的 Amazon EKS 叢集建立 Amazon VPC。
-
Subnets (子網路):根據預設,前一個欄位指定的 VPC 中的所有可用子網路會預先選取。您必須選取至少兩個。
您選擇的子網必須符合 Amazon EKS 子網要求。選擇子網路之前,建議您先熟悉 Amazon EKS VPC 和子網路要求和考量事項。
安全群組:(選用) 指定一或多個您希望 Amazon EKS 與其建立的網路介面相關聯的安全群組。
無論您是否選擇任何安全群組,Amazon EKS 都會建立一個安全群組,以支援您的叢集和 VPC 之間的通訊。Amazon EKS 將此安全群組及您選擇的任何群組與其建立的網路介面相關聯。如需有關 Amazon EKS 建立的叢集安全群組的詳細資訊,請參閱 檢視叢集的 Amazon EKS 安全群組要求。您可以修改 Amazon EKS 建立的叢集安全群組中的規則。
-
選擇叢集 IP 地址系列:您可以選擇 IPv4 或 IPv6。
預設情況下,Kubernetes 會為 Pod 和服務指派
IPv4位址。在決定使用IPv6系列之前,請確認您已熟悉 VPC 要求和考量事項、子網需求和注意事項、檢視叢集的 Amazon EKS 安全群組要求 和 了解叢集、Pod 與服務的 IPv6 位址 主題中的所有考量事項和要求。如果您選擇IPv6系列,則無法像對IPv4系列那樣,指定 Kubernetes 從中分配IPv6服務位址的位址範圍。Kubernetes 從唯一的本地位址範圍指派服務位址 (fc00::/7)。 -
(選用) 選擇設定 Kubernetes 服務 IP 位址範圍,並指定服務
IPv4範圍。指定您自己的範圍有助於防止 Kubernetes 服務與對等或連接到您的 VPC 的其他網路之間發生衝突。在 CIDR 標記法中輸入範圍。例如:
10.2.0.0/16。CIDR 區塊必須符合下列需求:
-
處於以下範圍之一:
10.0.0.0/8、172.16.0.0/12或192.168.0.0/16。 -
具有最小尺寸的
/24和最大尺寸的/12。 -
與您的 Amazon EKS 資源的 VPC 範圍不重疊。
-
您只能在使用
IPv4地址系列時指定此選項,並且只能在建立叢集時指定。如果您未指定此項,則 Kubernetes 會從10.100.0.0/16或172.20.0.0/16CIDR 區塊指派服務 IP 位址。-
針對 Cluster endpoint access (叢集端點存取),選取一個選項。建立叢集後,您可以變更此選項。在選取非預設選項之前,請務必熟悉這些選項及其含義。如需詳細資訊,請參閱 叢集 API 伺服器端點。
完成此頁面後,請選擇下一步。
-
-
(選用) 在設定可觀測性頁面上,選擇要開啟的指標和控制平面日誌記錄選項。根據預設,系統會關閉每個日誌類型。
-
如需有關 Prometheus 指標選項的詳細資訊,請參閱 步驟 1:開啟 Prometheus 指標。
-
如需控制平面日誌記錄選項的詳細資訊,請參閱 將控制平面日誌傳送至 CloudWatch Logs。
-
完成此頁面後,請選擇下一步。
-
-
在 Select add-ons (選取附加元件) 頁面上,選擇您要新增至叢集的附加元件。您可以根據需要選擇任意多個 Amazon EKS 附加元件和 AWS Marketplace 附加元件。如果未列出您要安裝的 AWS Marketplace 附加元件,則可以點選頁碼以檢視其他頁面結果,或可以在搜尋方框中輸入文字來搜尋可用的 AWS Marketplace 附加元件。您也可以依類別、廠商或定價模式搜尋,然後從搜尋結果中選擇附加元件。建立叢集時,您可以檢視、選取和安裝支援 EKS Pod 身分識別的任何附加元件,詳見 了解 EKS Pod 身分識別如何授予 AWS 服務的 Pod 存取權。
-
EKS 自動模式會自動化某些附加元件的功能。如果您計劃將 EKS 受管節點群組部署到 EKS 自動模式叢集,選取其他 Amazon EKS 附加元件並檢閱選項。您可能需要安裝 CoreDNS 和 kube-proxy 等附加元件。EKS 僅會在自我管理節點與節點群組上安裝本節中的附加元件。
-
完成此頁面後,請選擇下一步。
-
-
在設定選取的附加元件設定頁面上,選取您要安裝的版本。建立叢集後,您隨時皆可更新至更新版本。
對於支援 EKS Pod 身分識別的附加元件,您可以使用主控台自動產生角色,其名稱、AWS 受管政策和信任政策已預先填入,專門用於該附加元件。您可以重複使用現有角色或為支援的附加元件建立新角色。有關使用主控台為支援 EKS Pod 身分識別的附加元件建立角色的步驟,請參閱 建立附加元件 (AWS 主控台)。如果附加元件不支援 EKS Pod 身分識別,則會顯示一則訊息,指示在叢集建立後使用精靈建立服務帳戶的 IAM 角色 (IRSA)。
您可以在建立叢集後更新每個附加元件的組態。如需有關設定附加元件的詳細資訊,請參閱更新 Amazon EKS 附加元件。完成此頁面後,請選擇下一步。
-
在 Review and create (檢閱並建立) 頁面上,檢閱您在先前頁面上輸入或選取的資訊。如需變更,請選擇 Edit (編輯)。當您感到滿意時,請選擇建立。在佈建叢集時,Status (狀態) 欄位顯示 CREATING (正在建立)。
注意
您可能會收到錯誤,表示在請求中的其中一個可用區域沒有足夠的容量可建立 Amazon EKS 叢集。如果發生這種情況,錯誤輸出包含的可用區域可支援新的叢集。使用至少兩個位於帳戶的支援可用區域子網路來建立您的叢集。如需詳細資訊,請參閱 容量不足。
叢集佈建需要幾分鐘的時間。
建立叢集 - AWS CLI
以下 CLI 說明涵蓋建立 IAM 資源和建立叢集。
建立 EKS 自動模式叢集 IAM 角色
步驟 1:建立信任政策
建立信任政策,允許 Amazon EKS 服務擔任該角色。將政策儲存為 trust-policy.json:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }
步驟 2:建立 IAM 角色
使用信任政策建立叢集 IAM 角色:
aws iam create-role \
--role-name AmazonEKSAutoClusterRole \
--assume-role-policy-document file://trust-policy.json
步驟 3:記下角色 ARN
擷取並儲存新角色的 ARN,供後續步驟使用:
aws iam get-role --role-name AmazonEKSAutoClusterRole --query "Role.Arn" --output text
步驟 4:附加所需政策
將以下 AWS 受管政策附加到叢集 IAM 角色,以授予必要的許可:
AmazonEKSClusterPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy
AmazonEKSComputePolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSComputePolicy
AmazonEKSBlockStoragePolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy
AmazonEKSLoadBalancingPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy
AmazonEKSNetworkingPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy
建立 EKS 自動模式節點 IAM 角色
步驟 1:建立信任政策
建立信任政策,允許 Amazon EKS 服務擔任該角色。將政策儲存為 node-trust-policy.json:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
步驟 2:建立節點 IAM 角色
使用上一步中的 node-trust-policy.json 檔案來定義哪些實體可擔任該角色。執行下列命令以建立節點 IAM 角色:
aws iam create-role \
--role-name AmazonEKSAutoNodeRole \
--assume-role-policy-document file://node-trust-policy.json
步驟 3:記下角色 ARN
建立角色後,擷取並儲存節點 IAM 角色的 ARN。您在後續步驟中將需要此 ARN。使用以下命令來取得 ARN:
aws iam get-role --role-name AmazonEKSAutoNodeRole --query "Role.Arn" --output text
步驟 4:附加所需政策
將以下 AWS 受管政策附加到節點 IAM 角色,以提供必要的許可:
AmazonEKSWorkerNodeMinimalPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy
AmazonEC2ContainerRegistryPullOnly:
aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
建立叢集
-
使用下列命令建立您的叢集。執行命令之前,請執行下列替換:
-
將
region-code取代為您希望在其中建立叢集的 AWS 區域。 -
使用您的叢集名稱取代
my-cluster。名稱僅包含英數字元 (區分大小寫)、連字號和底線。必須以英數字元開頭,且長度不可超過 100 個字元。在您要建立叢集的 AWS 區域和 AWS 帳戶中,該名稱必須是唯一的。 -
使用任何 Amazon EKS 支援的版本取代
1.30。 -
使用您的帳戶 ID 取代
111122223333 -
如果您為叢集和節點角色建立了不同名稱的 IAM 角色,請取代 ARN。
-
以您自己的值取代
subnetIds值。您也可以新增其他 ID。您必須指定至少兩個子網路 ID。您選擇的子網必須符合 Amazon EKS 子網要求。選擇子網路之前,建議您先熟悉 Amazon EKS VPC 和子網路要求和考量事項。
-
如果您不想要指定安全群組 ID,請從命令中移除
,securityGroupIds=sg-<ExampleID1>。如果要指定一或多個安全群組 ID,請將securityGroupIds取代為您自己的值。您也可以新增其他 ID。無論您是否選擇任何安全群組,Amazon EKS 都會建立一個安全群組,以支援您的叢集和 VPC 之間的通訊。Amazon EKS 將此安全群組及您選擇的任何群組與其建立的網路介面相關聯。如需有關 Amazon EKS 建立的叢集安全群組的詳細資訊,請參閱 檢視叢集的 Amazon EKS 安全群組要求。您可以修改 Amazon EKS 建立的叢集安全群組中的規則。
aws eks create-cluster \ --region region-code \ --name my-cluster \ --kubernetes-version 1.30 \ --role-arn arn:aws:iam::111122223333:role/AmazonEKSAutoClusterRole \ --resources-vpc-config '{"subnetIds": ["subnet-ExampleID1","subnet-ExampleID2"], "securityGroupIds": ["sg-ExampleID1"], "endpointPublicAccess": true, "endpointPrivateAccess": true}' \ --compute-config '{"enabled": true, "nodeRoleArn": "arn:aws:iam::111122223333:role/AmazonEKSAutoNodeRole", "nodePools": ["general-purpose", "system"]}' \ --kubernetes-network-config '{"elasticLoadBalancing": {"enabled": true}}' \ --storage-config '{"blockStorage": {"enabled": true}}' \ --access-config '{"authenticationMode": "API"}'注意
您可能會收到錯誤,表示在請求中的其中一個可用區域沒有足夠的容量可建立 Amazon EKS 叢集。如果發生這種情況,錯誤輸出包含的可用區域可支援新的叢集。使用至少兩個位於帳戶的支援可用區域子網路來建立您的叢集。如需詳細資訊,請參閱 容量不足。
以下是選用設定,如有需要,必須將其新增至上一個命令中。您只能在建立叢集時啟用這些選項,而不能在建立叢集之後啟用。
-
如果您想指定 Kubernetes 要從哪個
IPv4無類別域間路由 (CIDR) 區塊中指派服務 IP 地址,您必須將--kubernetes-network-config serviceIpv4Cidr=<cidr-block>新增至下列命令來指定。指定您自己的範圍有助於防止 Kubernetes 服務與對等或連接到您的 VPC 的其他網路之間發生衝突。在 CIDR 標記法中輸入範圍。例如:
10.2.0.0/16。CIDR 區塊必須符合下列需求:
-
處於以下範圍之一:
10.0.0.0/8、172.16.0.0/12或192.168.0.0/16。 -
具有最小尺寸的
/24和最大尺寸的/12。 -
與您的 Amazon EKS 資源的 VPC 範圍不重疊。
您只能在使用
IPv4地址系列時指定此選項,並且只能在建立叢集時指定。如果您未指定此項,則 Kubernetes 會從10.100.0.0/16或172.20.0.0/16CIDR 區塊指派服務 IP 位址。
-
-
如果您正在建立叢集,並希望叢集將
IPv6位址 (而不是IPv4位址) 指派給 Pod 和服務,請將--kubernetes-network-config ipFamily=ipv6新增至以下命令。預設情況下,Kubernetes 會為 Pod 和服務指派
IPv4位址。在決定使用IPv6系列之前,請確認您已熟悉 VPC 要求和考量事項、子網需求和注意事項、檢視叢集的 Amazon EKS 安全群組要求 和 了解叢集、Pod 與服務的 IPv6 位址 主題中的所有考量事項和要求。如果您選擇IPv6系列,則無法像對IPv4系列那樣,指定 Kubernetes 從中分配IPv6服務位址的位址範圍。Kubernetes 從唯一的本地位址範圍指派服務位址 (fc00::/7)。
-
-
佈建叢集需要幾分鐘才能完成。您可以使用下列命令來查詢叢集的狀態。
aws eks describe-cluster --region region-code --name my-cluster --query "cluster.status"