跳至主要内容

建立 EKS 叢集

Amazon EKS 為您的 Kubernetes 叢集提供託管控制平面。Amazon EKS 在多個可用區中執行 Kubernetes 控制平面執行個體,以確保高可用性。Rancher 提供直觀的使用者介面,用於管理和部署您在 Amazon EKS 中執行的 Kubernetes 叢集。透過本指南,您將使用 Rancher 在您的 AWS 帳戶中快速輕鬆地啟動 Amazon EKS Kubernetes 叢集。有關 Amazon EKS 的更多資訊,請參閱此文件。

Amazon Web Services 的先決條件​

警告

部署到 Amazon AWS 將產生費用。如需更多資訊,請參閱 EKS 定價頁面。

要在 EKS 上設定叢集,您需要設定 Amazon VPC(虛擬私有雲端)。您還需要確保用於建立 EKS 叢集的帳戶具有適當的權限。有關詳細資訊,請參閱官方指南 Amazon EKS 先決條件。

Amazon VPC​

啟動 EKS 叢集需要 Amazon VPC。VPC 使您能夠將 AWS 資源啟動到您定義的虛擬網路中。您可以自行設定一個,並在 Rancher 中建立叢集期間提供它。如果您在建立期間未提供,Rancher 將建立一個。有關更多資訊,請參閱教學:為您的 Amazon EKS 叢集建立具有公用和私有子網路的 VPC。

IAM 政策​

Rancher 需要存取您的 AWS 帳戶,以便在 Amazon EKS 中配置和管理您的 Kubernetes 叢集。您需要在 AWS 帳戶中為 Rancher 建立一個使用者,並定義該使用者可以存取的內容。

  1. 按照此處的步驟建立具有程式設計存取權限的使用者。

  2. 接下來,建立一個 IAM 政策,定義此使用者在您的 AWS 帳戶中可以存取的內容。重要的是只授予此使用者在您帳戶中的最小存取權限。EKS 叢集所需的最小權限列於此處。按照此處的步驟建立 IAM 政策並將其附加到您的使用者。

  3. 最後,按照此處的步驟為此使用者建立存取金鑰和密碼金鑰。

重要:

定期輪換您的存取和密碼金鑰很重要。有關更多資訊,請參閱此文件。

有關 EKS 的 IAM 政策的更詳細資訊,請參閱官方Amazon EKS IAM 政策、角色和權限文件。

建立 EKS 叢集​

使用 Rancher 設定和配置您的 Kubernetes 叢集。

  1. 按一下 ☰ > Cluster Management。
  2. 在 Clusters 頁面上,按一下 Create。
  3. 選擇 Amazon EKS。
  4. 輸入 Cluster Name。
  5. 使用 Member Roles 配置叢集的使用者授權。按一下 Add Member 以新增可以存取叢集的使用者。使用 Role 下拉選單為每個使用者設定權限。
  6. 填寫表單的其餘部分。如需協助,請參閱配置參考。
  7. 按一下 Create。

結果:

您的叢集已建立並指派為 Provisioning 狀態。Rancher 正在建立您的叢集。

您的叢集狀態更新為 Active 後,即可存取它。

Active 叢集被分配兩個專案:

  • Default,包含 default 命名空間
  • System,包含 cattle-system、ingress-nginx、kube-public 和 kube-system 命名空間

EKS 叢集配置參考​

有關 EKS 叢集配置選項的完整清單,請參閱此頁面。

架構​

下圖說明了 Rancher 2.x 的高階架構。該圖描述了管理兩個 Kubernetes 叢集的 Rancher Server 安裝:一個由 RKE 建立,另一個由 EKS 建立。

透過 Rancher 的身份驗證代理管理 Kubernetes 叢集

Architecture

AWS 服務事件​

要查找有關任何 AWS 服務事件的資訊,請參閱此頁面。

安全性與合規性​

預設情況下,只有建立叢集的 IAM 使用者或角色才能存取它。如果沒有其他配置,嘗試使用任何其他使用者或角色存取叢集將導致錯誤。在 Rancher 中,這意味著使用對應到未用於建立叢集的使用者或角色的憑證將導致未授權錯誤。例如,除非用於註冊叢集的憑證與 EKSCtl 使用的角色或使用者相符,否則 EKSCtl 叢集將不會在 Rancher 中註冊。可以透過將其他使用者和角色新增到 kube-system 命名空間中的 aws-auth configmap 來授權其存取叢集。有關更深入的說明和詳細說明,請參閱此文件。

有關 Amazon EKS Kubernetes 叢集的安全性和合規性的更多資訊,請參閱此文件。

教學​

AWS 開源部落格上的此教學將引導您了解如何使用 Rancher 設定 EKS 叢集,部署可公開存取的應用程式來測試叢集,以及部署範例專案以使用 Grafana 和 InfluxDB 等其他開源軟體的組合追蹤即時地理空間資料。

最小 EKS 權限​

這些是存取 Rancher 的 EKS 驅動程式完整功能所需的最小權限集。這些權限允許 Rancher 在必要時代表使用者建立服務角色和虛擬私有雲端 (VPC) 資源。

備註

在 EKS v1.23 及更高版本中,您必須對 EBS 支援的磁碟區使用樹外驅動程式。您需要特定權限才能啟用此附加元件。

資源描述
EBS CSI Driver add-on提供允許 Kubernetes 與 EBS 互動並配置叢集以啟用附加元件的權限(EKS v1.23 及更高版本所需)。Rancher 可以使用以下 EBS CSI Driver addon 權限安裝附加元件。

資源目標使用 * 作為 ARN,因為在 Rancher 中建立 EKS 叢集之前無法知道許多建立的資源的 ARN。

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EC2Permissions",
"Effect": "Allow",
"Action": [
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CreateKeyPair",
"ec2:CreateLaunchTemplate",
"ec2:CreateLaunchTemplateVersion",
"ec2:CreateSecurityGroup",
"ec2:CreateTags",
"ec2:DeleteKeyPair",
"ec2:DeleteLaunchTemplate",
"ec2:DeleteLaunchTemplateVersions",
"ec2:DeleteSecurityGroup",
"ec2:DeleteTags",
"ec2:DescribeAccountAttributes",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeImages",
"ec2:DescribeInternetGateways",
"ec2:DescribeInstanceTypes",
"ec2:DescribeKeyPairs",
"ec2:DescribeLaunchTemplateVersions",
"ec2:DescribeLaunchTemplates",
"ec2:DescribeRegions",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSubnets",
"ec2:DescribeTags",
"ec2:DescribeVpcs",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress",
"ec2:RunInstances"
],
"Resource": "*"
},
{
"Sid": "CloudFormationPermissions",
"Effect": "Allow",
"Action": [
"cloudformation:CreateStack",
"cloudformation:CreateStackSet",
"cloudformation:DeleteStack",
"cloudformation:DescribeStackResource",
"cloudformation:DescribeStackResources",
"cloudformation:DescribeStacks",
"cloudformation:ListStackResources",
"cloudformation:ListStacks"
],
"Resource": "*"
},
{
"Sid": "IAMPermissions",
"Effect": "Allow",
"Action": [
"iam:AddRoleToInstanceProfile",
"iam:AttachRolePolicy",
"iam:CreateInstanceProfile",
"iam:CreateRole",
"iam:CreateServiceLinkedRole",
"iam:DeleteInstanceProfile",
"iam:DeleteRole",
"iam:DetachRolePolicy",
"iam:GetInstanceProfile",
"iam:GetRole",
"iam:ListAttachedRolePolicies",
"iam:ListInstanceProfiles",
"iam:ListInstanceProfilesForRole",
"iam:ListRoles",
"iam:ListRoleTags",
"iam:PassRole",
"iam:RemoveRoleFromInstanceProfile",
"iam:TagRole"
],
"Resource": "*"
},
{
"Sid": "KMSPermissions",
"Effect": "Allow",
"Action": "kms:ListKeys",
"Resource": "*"
},
{
"Sid": "EKSPermissions",
"Effect": "Allow",
"Action": [
"eks:CreateCluster",
"eks:CreateFargateProfile",
"eks:CreateNodegroup",
"eks:DeleteCluster",
"eks:DeleteFargateProfile",
"eks:DeleteNodegroup",
"eks:DescribeAddon",
"eks:DescribeCluster",
"eks:DescribeFargateProfile",
"eks:DescribeNodegroup",
"eks:DescribeUpdate",
"eks:ListClusters",
"eks:ListFargateProfiles",
"eks:ListNodegroups",
"eks:ListTagsForResource",
"eks:ListUpdates",
"eks:TagResource",
"eks:UntagResource",
"eks:UpdateClusterConfig",
"eks:UpdateClusterVersion",
"eks:UpdateNodegroupConfig",
"eks:UpdateNodegroupVersion"
],
"Resource": "*"
},
{
"Sid": "VPCPermissions",
"Effect": "Allow",
"Action": [
"ec2:AssociateRouteTable",
"ec2:AttachInternetGateway",
"ec2:CreateInternetGateway",
"ec2:CreateRoute",
"ec2:CreateRouteTable",
"ec2:CreateSecurityGroup",
"ec2:CreateSubnet",
"ec2:CreateVpc",
"ec2:DeleteInternetGateway",
"ec2:DeleteRoute",
"ec2:DeleteRouteTable",
"ec2:DeleteSubnet",
"ec2:DeleteTags",
"ec2:DeleteVpc",
"ec2:DescribeVpcs",
"ec2:DetachInternetGateway",
"ec2:DisassociateRouteTable",
"ec2:ModifySubnetAttribute",
"ec2:ModifyVpcAttribute",
"ec2:ReplaceRoute"
],
"Resource": "*"
}
]
}

當您建立 EKS 叢集時,Rancher 會建立具有以下信任政策的服務角色:

{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}

此角色還具有兩個角色政策附件,具有以下政策的 ARN:

arn:aws:iam::aws:policy/AmazonEKSClusterPolicy
arn:aws:iam::aws:policy/AmazonEKSServicePolicy

EBS CSI Driver addon 權限​

以下是安裝 Amazon EBS CSI Driver 附加元件所需的權限。

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"eks:AssociateIdentityProviderConfig",
"eks:CreateAddon",
"eks:DeleteAddon",
"eks:DescribeAddonConfiguration",
"eks:DescribeAddonVersions",
"eks:DescribeIdentityProviderConfig",
"eks:ListAddons",
"eks:ListIdentityProviderConfigs",
"eks:UpdateAddon",
"iam:CreateOpenIDConnectProvider",
"iam:ListOpenIDConnectProviders",
"sts:AssumeRoleWithWebIdentity"
],
"Resource": "*"
}
]
}

同步​

EKS 配置器可以在 Rancher 和提供者之間同步 EKS 叢集的狀態。有關其運作方式的深入技術說明,請參閱同步。

有關配置重新整理間隔的資訊,請參閱本節。

疑難排解​

如果您的變更被覆寫,可能是由於叢集資料與 EKS 同步的方式。不應在五分鐘內從其他來源(例如在 EKS 主控台中)和在 Rancher 中對叢集進行變更。有關其運作方式以及如何配置重新整理間隔的資訊,請參閱同步。

如果在嘗試修改或註冊叢集時返回未授權錯誤,並且叢集不是使用您的憑證所屬的角色或使用者建立的,請參閱安全性與合規性。

有關 Amazon EKS Kubernetes 叢集的任何問題或疑難排解詳細資訊,請參閱此文件。

以程式設計方式建立 EKS 叢集​

透過 Rancher 以程式設計方式部署 EKS 叢集的最常見方式是使用 Rancher2 Terraform 提供者。使用 Terraform 建立叢集的文件在這裡。