View a markdown version of this page

在使用 EC2 執行個體存放區設定的 AWS Outposts 上部署 Amazon EKS 本機叢集 - Amazon EKS

協助改進此頁面

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

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 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 客戶團隊。

重要

先決條件

注意

當您建立本機叢集時,建立叢集的 IAM 主體會以具有 system:masters 許可的管理員身分永久新增至 Kubernetes RBAC 授權表。請務必永遠不要刪除此委託人。

建立本機叢集

您可以使用 AWS 管理主控台、 AWS CLI、Amazon EKS API 或 AWS CloudFormation 建立本機叢集。

當您建立本機叢集時,請注意下列事項:

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 管理主控台

  1. 開啟 Amazon EKS 主控台

  2. 選擇 Create Cluster (建立叢集)。

  3. 針對 Kubernetes 控制平面位置,選擇 AWS Outposts

  4. 設定下列項目:

    • 名稱 — 叢集的名稱。

    • Kubernetes 版本 — 要使用的版本。

    • 叢集服務角色 — 具有 AmazonEKSClusterPolicyAmazonEKSServicePolicy 的 IAM 角色。

    • Outpost ID — 要部署的邏輯 Outpost。

    • 控制平面執行個體類型 — Kubernetes API 伺服器、排程器和控制器管理員的執行個體類型。

    • etcd 執行個體類型 — 的執行個體類型etcd

    • 分散層級hostrack 用於控制平面和etcd放置。

  5. 設定聯網:VPC、子網路、安全群組。啟用私有端點存取。

  6. 設定可觀測性:控制平面記錄。

  7. 檢閱和建立。

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 上建立本機叢集時,需要 controlPlaneInstanceTypeetcdInstanceType 參數。controlPlanePlacementetcdPlacement 是選用參數。如果您未指定,則不會套用置放分散策略。

注意

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 中都有文字。

部署工作者節點

使用自我管理節點群組,將工作者節點部署到您的本機叢集。

  1. 部署工作者 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
  2. 授予節點執行個體角色對叢集的存取權。為節點的 IAM 角色建立存取項目

    aws eks create-access-entry \ --cluster-name my-cluster \ --principal-arn arn:aws: iam::111122223333:role/myNodeRole \ --type EC2_LINUX

    或者,如果您使用 aws-auth ConfigMap 進行身分驗證,請將節點執行個體角色新增至 ConfigMap。請參閱 授予 IAM 使用者和角色對 Kubernetes APIs存取權

  3. 確認您的節點處於 Ready 狀態:

    kubectl get nodes

內部資源

當您建立本機叢集時,Amazon EKS 會自動在kube-system命名空間中安裝下列附加元件的自我管理版本:corednskube-proxyaws-node(VPC CNI)。您可以選擇透過 Amazon EKS 附加元件 API 安裝這些附加元件的受管版本。如需詳細資訊,請參閱使用 EC2 執行個體存放區設定的 AWS Outposts 上本機叢集的 Amazon EKS 附加元件

Amazon EKS 也會在您的子網路中建立跨帳戶彈性網路介面 (ENIs),以進行叢集-VPC 通訊。請勿刪除這些網路介面。如果刪除跨帳戶 ENI 或其 IP 地址變更,則每個節點和每個使用靜態 IP 型存取的管理員都必須手動更新。