帮助改进此页面
想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。
创建 Amazon EKS 集群。
本主题概述了可用选项,并介绍了创建 Amazon EKS 集群时需要考虑的内容。如果您需要在 AWS Outpost 上创建集群,请参阅 在 AWS Outposts 上创建本地 Amazon EKS 集群以实现高可用性。如果您是首次创建 Amazon EKS 集群,我们建议您按照我们的 开始使用 Amazon EKS 指南之一操作。这些指南可帮助您创建一个简单的默认集群,而无需扩展到所有可用选项。
先决条件
-
满足 Amazon EKS 要求的现有 VPC 和子网。在部署集群用于生产用途前,我们建议您彻底了解 VPC 和子网要求。如果您没有 VPC 和子网,则可以使用 Amazon EKS 提供的 AWS CloudFormation 模板创建它们。
-
您的设备或 AWS CloudShell 上安装了
kubectl
命令行工具。该版本可以与集群的 Kubernetes 版本相同,或者最多早于或晚于该版本一个次要版本。例如,如果您的集群版本为1.30
,则可以将kubectl
的1.29
、1.30
或1.31
版本与之配合使用。要安装或升级kubectl
,请参阅 设置 kubectl 和 eksctl。 -
在您的设备或 AWS CloudShell 上安装和配置了 AWS Command Line Interface(AWS CLI)的版本
2.12.3
或更高版本,或版本1.27.160
或更高版本。要查看当前版本,请使用
。软件包管理器(如aws --version | cut -d / -f2 | cut -d ' ' -f1
yum
、apt-get
或适用于 macOS 的 Homebrew)通常比 AWS CLI 的最新版本落后几个版本。要安装最新版本,请参阅《AWS Command Line Interface 用户指南》中的安装、更新和卸载 AWS CLI,以及使用 aws configure 快速配置。AWS CloudShell 中安装的 AWS CLI 版本也可能比最新版本落后几个版本。如需更新,请参阅《AWS CloudShell 用户指南》中的将 AWS CLI 安装到主目录。 -
具有
create
和describe
Amazon EKS 集群权限的 IAM 主体。有关更多信息,请参阅在 Outpost 上创建本地 Kubernetes 集群 和列出或描述所有集群。
创建 Amazon EKS 集群
-
如果您已经拥有集群 IAM 角色,或者您将使用
eksctl
创建集群,则可以跳过此步骤。默认情况下,eksctl
会为您创建角色。创建 Amazon EKS 集群 IAM 角色
-
运行以下命令以创建 IAM 信任策略 JSON 文件。
cat >
eks-cluster-role-trust-policy.json
<<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF -
创建 Amazon EKS 集群 IAM 角色。如有必要,使用您在上一步中将文件写入到的计算机上的路径为
eks-cluster-role-trust-policy.json
添加前言。该命令将您在上一步中创建的信任策略与角色关联。要创建 IAM 角色,必须为正在创建角色的 IAM 主体分配iam:CreateRole
操作(权限)。aws iam create-role --role-name
myAmazonEKSClusterRole
--assume-role-policy-document file://"eks-cluster-role-trust-policy.json
" -
您可以分配 Amazon EKS 托管策略或创建自己的自定义策略。有关必须在自定义策略中使用的最低权限,请参阅 Amazon EKS 集群 IAM 角色。
将名为
AmazonEKSClusterPolicy
的 Amazon EKS 托管 IAM 策略附加到角色。要将 IAM policy 附加到某个 IAM 主体,必须为附加该策略的主体分配以下 IAM 操作(权限)之一:iam:AttachUserPolicy
或iam:AttachRolePolicy
。aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy --role-name
myAmazonEKSClusterRole
-
-
创建 Amazon EKS 集群。
您可以使用
eksctl
、AWS Management Console 或 AWS CLI 创建集群。 -
如果您使用
eksctl
创建了集群,则可以跳过此步骤。这是因为eksctl
已经为您完成了此步骤。通过向kubectl
config
文件添加新上下文来启用kubectl
与您的集群通信。有关如何创建和更新文件的更多信息,请参阅 通过创建 kubeconfig 文件将 kubectl 连接到 EKS 集群。aws eks update-kubeconfig --region
region-code
--namemy-cluster
示例输出如下。
Added new context arn:aws:eks:
region-code
:111122223333
:cluster/my-cluster
to/home/username/
.kube/config -
通过运行以下命令以确认与集群的通信。
kubectl get svc
示例输出如下。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 28h
-
(建议)要使用某些 Amazon EKS 附加组件,或启用个别 Kubernetes 工作负载以具有特定 AWS Identity and Access Management(IAM)权限,请为集群创建 IAM OpenID Connect(OIDC)提供商。您只需为集群创建一次 IAM OIDC 提供商。要了解有关 Amazon EKS 附加组件的详情,请参阅 Amazon EKS 附加组件。要了解有关将特定 IAM 权限分配给工作负载的详情,请参阅 服务账户的 IAM 角色。
-
(推荐)在将 Amazon EC2 节点部署到集群之前为 Amazon VPC CNI plugin for Kubernetes 插件配置集群。默认情况下,该插件随集群一起安装。当您将 Amazon EC2 节点添加到集群时,插件将自动部署到您添加的每个 Amazon EC2 节点上。该插件要求您将以下 IAM policy 之一附加到 IAM 角色:
AmazonEKS_CNI_Policy
托管 IAM policy-
如果您的集群使用
IPv4
系列 - 您创建的 IAM policy
-
如果您的集群使用
IPv6
系列
您将策略附加到的 IAM 角色可以是节点 IAM 角色,也可以是仅用于插件的专用角色。我们建议将策略附加到此角色。有关创建角色的更多信息,请参阅 配置 Amazon VPC CNI 插件以使用 IRSA 或 Amazon EKS 节点 IAM 角色。
-
如果您使用 AWS Management Console 部署了集群,则可以跳过此步骤。AWS Management Console在默认情况下会部署 Amazon VPC CNI plugin for Kubernetes、CoreDNS、
kube-proxy
Amazon EKS 附加组件。如果您使用
eksctl
或 AWS CLI 部署集群,则 Amazon VPC CNI plugin for Kubernetes、CoreDNS 和kube-proxy
自行管理的附加组件将会被部署。您可以将使用您的集群部署的 Amazon VPC CNI plugin for Kubernetes、CoreDNS 和kube-proxy
自行管理的附加组件迁移到 Amazon EKS 附加组件中。有关更多信息,请参阅 Amazon EKS 附加组件。 -
(可选)如果您尚未执行此操作,可以为集群启用 Prometheus 指标。有关更多信息,请参阅《Amazon Managed Service for Prometheus 用户指南》中的创建抓取程序。
-
如果启用了 Prometheus 指标,则必须设置
aws-auth
ConfigMap
以授予抓取程序集群内权限。有关更多信息,请参阅《Amazon Managed Service for Prometheus 用户指南》中的配置您的 Amazon EKS 集群。 -
如果您计划将工作负载部署到使用 Amazon EBS 卷的集群,并且您创建了
1.23
或更高版本的集群,则在部署工作负载之前,您必须将 使用 Amazon EBS 存储 Kubernetes 卷 安装到您的集群。
向您建议的后续步骤:
-
创建集群的 IAM 主体是唯一可以访问集群的主体。向其他 IAM 主体授予权限,以便它们可以访问您的集群。
-
如果创建集群的 IAM 主体仅具有先决条件中引用的最低 IAM 权限,则您可能想要为该主体添加额外的 Amazon EKS 权限。有关向 IAM 主体授予 Amazon EKS 权限的更多信息,请参阅适用于 Amazon EKS 的身份和访问管理。
-
如果您希望创建集群的 IAM 主体或任何其他主体在 Amazon EKS 控制台中查看 Kubernetes 资源,请向实体授予 所需的权限。
-
如果您希望节点和 IAM 主体从 VPC 内访问您的集群,请为集群启用私有端点。默认情况下,将启用公有端点。如需要,可以在启用私有端点后禁用公有端点。有关更多信息,请参阅 控制对集群 API 服务器端点的网络访问权限。