協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在使用 EC2 執行個體存放區設定的 AWS Outposts 上部署 Amazon EKS 本機叢集
本主題提供在以 EC2 執行個體存放區設定的 AWS Outpost 上部署本機 Amazon EKS 叢集的說明。
注意
如果您的 Outpost 是使用 Amazon EBS 而非 EC2 執行個體存放區設定,則本主題中所述的架構不適用於您的 Outpost。使用 EBS 設定的 Outpost 將繼續使用現有的本機叢集實作。如需詳細資訊,請參閱在 AWS Outposts 上部署 Amazon EKS 叢集。
如果您有興趣使用更新的本機叢集架構,在 EBS 支援的 Outpost 上建立本機叢集,請聯絡您的 AWS 客戶團隊。
重要
-
本機叢集僅支援 Outpost 機架。單一本機叢集可以在包含單一邏輯 Outpost 的多個實體 Outpost 機架上執行。單一本機叢集無法跨多個邏輯 Outposts 執行。
-
Kubernetes 控制平面會在 Outpost 上的 AWS受管服務帳戶中執行。您無法存取控制平面執行個體、在 Amazon EC2 主控台中檢視它們,或在它們上執行工作負載。
-
控制平面在外部刻印拓撲
中的 6 個 EC2 執行個體 (3 etcd+ 3 個 API 伺服器) 上執行。如需容量需求,請參閱 在使用 EC2 執行個體存放區設定的 AWS Outpost 上,選取 Amazon EKS 本機叢集的執行個體類型和配置。 -
適用於 Kubernetes、kube-proxy 和 CoreDNS 的 Amazon VPC CNI 外掛程式會自動安裝在本機叢集上。 在 Amazon EKS 叢集中管理 kube-proxy CoreDNS 如需已驗證附加元件的完整清單,請參閱 使用 EC2 執行個體存放區設定的 AWS Outposts 上本機叢集的 Amazon EKS 附加元件。
-
Amazon EKS 會定期備份
etcd。如果etcd失去規定人數,Amazon EKS 會從最新的快照復原叢集狀態。
先決條件
-
使用 EC2 執行個體存放區設定的現有 Outpost 機架,具有足夠用於控制平面執行個體的虛擬化容量。請參閱 在使用 EC2 執行個體存放區設定的 AWS Outpost 上,選取 Amazon EKS 本機叢集的執行個體類型和配置。
-
符合 中所述需求的 VPC 和子網路在使用 EC2 執行個體存放區設定的 AWS Outpost 上,為 Amazon EKS 本機叢集建立 VPC 和子網路。
-
kubectl命令列工具安裝在您的電腦或 AWS CloudShell 上。版本可以與叢集的 Kubernetes 版本相同,也可以比叢集的 Kubernetes 版本更早或更晚一個次要版本。若要安裝或升級kubectl,請參閱 設定 kubectl 和 eksctl。 -
在您的裝置或 AWS CloudShell 上安裝和設定 AWS CLI 版本
2.35.3或更新版本。若要檢查您目前的版本,請使用aws --version。若要安裝或升級,請參閱安裝 AWS CLI。 -
IAM 主體 (使用者或角色),具有建立和描述 Amazon EKS 叢集的許可。如需詳細資訊,請參閱在 Outpost 上建立本機 Kubernetes 叢集及所有叢集的清單或描述。
-
已連接下列 AWS 受管政策的叢集 IAM 角色:AmazonEKSClusterPolicy 和 AmazonEKSServicePolicy。角色信任政策必須允許
eks.amazonaws.com服務主體擔任該角色。
注意
當您建立本機叢集時,建立叢集的 IAM 主體會以具有 system:masters 許可的管理員身分永久新增至 Kubernetes RBAC 授權表。請務必永遠不要刪除此委託人。
建立本機叢集
您可以使用 AWS 管理主控台、 AWS CLI、Amazon EKS API 或 AWS CloudFormation 建立本機叢集。
當您建立本機叢集時,請注意下列事項:
-
您必須傳遞 Outpost 所在可用區域中的子網路。如果您在多個可用區域中傳遞子網路,請求會失敗。
-
您必須將
endpointPrivateAccess設為true。您也可以選擇啟用endpointPublicAccess。 -
您必須傳遞 的值
outpostConfig,包括outpostArns、controlPlaneInstanceType和etcdInstanceType。或者,您可以指定置放組態。請參閱 在使用 EC2 執行個體存放區設定的 AWS Outpost 上,選取 Amazon EKS 本機叢集的執行個體類型和配置。
AWS CLI
aws eks create-cluster \ --name my-cluster \ --role-arn arn:aws: iam::111122223333:role/myEKSClusterRole \ --kubernetes-version 1.36 \ --resources-vpc-config subnetIds=subnet-ExampleID1,endpointPrivateAccess=true,endpointPublicAccess=true \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}' \ --access-config authenticationMode=API_AND_CONFIG_MAP,bootstrapClusterCreatorAdminPermissions=true \ --outpost-config outpostArns=arn:aws: outposts:region-code:111122223333:outpost/op-uniqueid,controlPlaneInstanceType=m5.large,controlPlanePlacement={spreadLevel=host},etcdInstanceType=m5.large,etcdPlacement={spreadLevel=host}
AWS 管理主控台
-
開啟 Amazon EKS 主控台
。 -
選擇 Create Cluster (建立叢集)。
-
針對 Kubernetes 控制平面位置,選擇 AWS Outposts。
-
設定下列項目:
-
名稱 — 叢集的名稱。
-
Kubernetes 版本 — 要使用的版本。
-
叢集服務角色 — 具有 AmazonEKSClusterPolicy 和 AmazonEKSServicePolicy 的 IAM 角色。
-
Outpost ID — 要部署的邏輯 Outpost。
-
控制平面執行個體類型 — Kubernetes API 伺服器、排程器和控制器管理員的執行個體類型。
-
etcd 執行個體類型 — 的執行個體類型
etcd。 -
分散層級 —
host或rack用於控制平面和etcd放置。
-
-
設定聯網:VPC、子網路、安全群組。啟用私有端點存取。
-
設定可觀測性:控制平面記錄。
-
檢閱和建立。
CreateCluster API
{ "name": "my-cluster", "roleArn": "arn:aws: iam::111122223333:role/myEKSClusterRole", "version": "1.36", "resourcesVpcConfig": { "subnetIds": ["subnet-ExampleID1"], "endpointPublicAccess": true, "endpointPrivateAccess": true }, "logging": { "clusterLogging": [{ "types": ["api", "audit", "authenticator", "controllerManager", "scheduler"], "enabled": true }] }, "accessConfig": { "authenticationMode": "API_AND_CONFIG_MAP", "bootstrapClusterCreatorAdminPermissions": true }, "outpostConfig": { "outpostArns": ["arn:aws: outposts:region-code:111122223333:outpost/op-uniqueid"], "controlPlaneInstanceType": "m5.large", "controlPlanePlacement": { "spreadLevel": "host" }, "etcdInstanceType": "m5.large", "etcdPlacement": { "spreadLevel": "host" } } }
當您在以 EC2 執行個體存放區設定的 Outposts 上建立本機叢集時,需要 controlPlaneInstanceType和 etcdInstanceType 參數。controlPlanePlacement 和 etcdPlacement 是選用參數。如果您未指定,則不會套用置放分散策略。
注意
outpostConfig 是僅限建立的屬性。若要變更控制平面執行個體類型、etcd執行個體類型、置放或 Outpost,您必須建立新的叢集。
連線至您的叢集
設定 kubectl 以與您的叢集通訊:
aws eks update-kubeconfig --region region-code --name my-cluster
注意
如果您使用低於 的 AWS CLI 版本建立叢集2.35.3,則必須更新 kubeconfig以在 args exec 中指定 --cluster-name(而不是 --cluster-id)
叢集的 Kubernetes API 伺服器端點託管於 Amazon Route 53。端點會解析為 Amazon EKS 在子網路中建立的跨帳戶彈性網路介面 (ENIs) 的私有 IP 地址。這些 ENIs具有固定的私有 IP 地址,在整個叢集生命週期中不會變更。
當您建立叢集時,Amazon EKS 會在您指定的子網路中建立 3 個彈性網路介面。這些網路介面啟用您的叢集和 VPC 之間的通訊。每個網路界面在其描述Amazon EKS 中都有文字。cluster-name
部署工作者節點
使用自我管理節點群組,將工作者節點部署到您的本機叢集。
-
部署工作者 node AWS CloudFormation 範本,或在 Outpost 上建立個別 EC2 執行個體。
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2025-11-24/amazon-eks-outpost-nodegroup.yaml -
授予節點執行個體角色對叢集的存取權。為節點的 IAM 角色建立存取項目:
aws eks create-access-entry \ --cluster-name my-cluster \ --principal-arn arn:aws: iam::111122223333:role/myNodeRole \ --type EC2_LINUX或者,如果您使用
aws-authConfigMap 進行身分驗證,請將節點執行個體角色新增至 ConfigMap。請參閱 授予 IAM 使用者和角色對 Kubernetes APIs存取權。 -
確認您的節點處於
Ready狀態:kubectl get nodes
內部資源
當您建立本機叢集時,Amazon EKS 會自動在kube-system命名空間中安裝下列附加元件的自我管理版本:coredns、 kube-proxy和 aws-node(VPC CNI)。您可以選擇透過 Amazon EKS 附加元件 API 安裝這些附加元件的受管版本。如需詳細資訊,請參閱使用 EC2 執行個體存放區設定的 AWS Outposts 上本機叢集的 Amazon EKS 附加元件。
Amazon EKS 也會在您的子網路中建立跨帳戶彈性網路介面 (ENIs),以進行叢集-VPC 通訊。請勿刪除這些網路介面。如果刪除跨帳戶 ENI 或其 IP 地址變更,則每個節點和每個使用靜態 IP 型存取的管理員都必須手動更新。