开始使用 Amazon EKS – eksctl - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

帮助改进此页面

想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。

开始使用 Amazon EKS – eksctl

此指南可帮助您使用 eksctl(用于在 Amazon EKS 上创建和管理 Kubernetes 集群的简单命令行实用程序)来安装开始使用 Amazon Elastic Kubernetes Service (Amazon EKS) 所需的所有资源。在本教程的最后,将为您提供一个运行中的 Amazon EKS 集群,您可向其部署应用程序。

本指南中的程序可自动为您创建在您使用 Amazon Web Services Management Console 创建集群时必须手动创建的一些资源。如果您希望手动创建大多数资源并更好地了解它们之间的交互方式,请使用 Amazon Web Services Management Console 创建集群和执行计算。有关更多信息,请参阅 开始使用 Amazon EKS – Amazon Web Services Management Console 和 Amazon CLI

先决条件

在开始使用本教程之前,您必须安装并配置创建和管理 Amazon EKS 集群所需的以下工具和资源。

  • kubectl – 用于与 Kubernetes 集群一起使用的命令行工具。有关更多信息,请参阅 安装或更新 kubectl

  • eksctl – 用于处理 EKS 集群的命令行工具,该工具可自动执行许多单独任务。有关更多信息,请参阅 eksctl 文档中的 Installation

  • 所需的 IAM 权限 – 您正在使用的 IAM 安全主体必须具有使用 Amazon EKS IAM 角色、服务相关角色、Amazon CloudFormation、VPC 和相关资源的权限。有关更多信息,请参阅 IAM 用户指南中的用于 Amazon Elastic Container Service for Kubernetes 的操作、资源和条件键使用服务相关角色。您必须以同一用户身份完成本指南中的所有步骤。要查看当前用户,请运行以下命令:

    aws sts get-caller-identity

第 1 步:创建 Amazon EKS 集群和节点

重要

为了尽可能简单快速地入门,本主题包括创建具有原定设置的集群和节点的步骤。在创建用于生产使用的集群和节点之前,我们建议您熟悉所有设置,并使用符合您要求的设置部署集群和节点。有关更多信息,请参阅 创建 Amazon EKS 集群Amazon EKS 节点。一些设置仅在创建集群和节点时可以启用。

您可以使用下列节点类型之一创建集群。要了解有关各个类型的更多信息,请参阅 Amazon EKS 节点。部署集群后,您可以添加其他节点类型。

  • Fargate - Linux - 如果要在 Amazon Fargate 上运行 Linux 应用程序,请选择此类型的节点。Fargate 是一种无服务器计算引擎,允许部署 Kubernetes Pods,而不管理 Amazon EC2 实例。

  • 托管式节点 – Linux – 如果要在 Amazon EC2 实例上运行Amazon Linux 应用程序,请选择此类型的节点。虽然本指南中未作介绍,但您还可以向集群添加 Windows 自行管理节点和 Bottlerocket 节点。

使用以下命令创建 Amazon EKS 集群。您可以将 my-cluster 替换为自己的值。名称只能包含字母数字字符(区分大小写)和连字符。该名称必须以字母数字字符开头,且不得超过 100 个字符。对于您在其中创建集群的 Amazon Web Services 区域 和 Amazon Web Services 账户,该名称必须在其内具有唯一性。将 region-code 替换为 Amazon EKS 支持的任一 Amazon Web Services 区域。有关 Amazon Web Services 区域列表,请参阅 Amazon 一般参考中的 Amazon EKS 端点和配额

Fargate – Linux
eksctl create cluster --name my-cluster --region region-code --fargate
Managed nodes – Linux
eksctl create cluster --name my-cluster --region region-code

创建集群需要几分钟时间。在创建过程中,您将看到几行输出。输出的最后一行类似于以下示例行。

[...]
[✓]  EKS cluster "my-cluster" in "region-code" region is ready

eksctl~/.kube 中创建了一个 kubectl config 文件,或在计算机上的 ~/.kube 中的现有 config 文件添加了新集群的配置。

完成集群创建后,在 Amazon CloudFormation 控制台 https://console.aws.amazon.com/cloudformation 中查看名为 eksctl-my-cluster-cluster 的 Amazon CloudFormation 堆栈,查看创建的所有资源。

第 2 步:查看 Kubernetes 资源

  1. 查看您的集群节点。

    kubectl get nodes -o wide

    示例输出如下。

    Fargate – Linux
    NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME fargate-ip-192-0-2-0.region-code.compute.internal Ready <none> 8m3s v1.2.3-eks-1234567 192.0.2.0 <none> Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3 fargate-ip-192-0-2-1.region-code.compute.internal Ready <none> 7m30s v1.2.3-eks-1234567 192-0-2-1 <none> Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3
    Managed nodes – Linux
    NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME ip-192-0-2-0.region-code.compute.internal Ready <none> 6m7s v1.2.3-eks-1234567 192.0.2.0 192.0.2.2 Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3 ip-192-0-2-1.region-code.compute.internal Ready <none> 6m4s v1.2.3-eks-1234567 192.0.2.1 192.0.2.3 Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3

    如需详细了解输出中显示的内容,请参阅 查看 Kubernetes 资源

  2. 查看在集群上运行的工作负载。

    kubectl get pods -A -o wide

    示例输出如下。

    Fargate – Linux
    NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system coredns-1234567890-abcde 1/1 Running 0 18m 192.0.2.0 fargate-ip-192-0-2-0.region-code.compute.internal <none> <none> kube-system coredns-1234567890-12345 1/1 Running 0 18m 192.0.2.1 fargate-ip-192-0-2-1.region-code.compute.internal <none> <none>
    Managed nodes – Linux
    NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system aws-node-12345 1/1 Running 0 7m43s 192.0.2.1 ip-192-0-2-1.region-code.compute.internal <none> <none> kube-system aws-node-67890 1/1 Running 0 7m46s 192.0.2.0 ip-192-0-2-0.region-code.compute.internal <none> <none> kube-system coredns-1234567890-abcde 1/1 Running 0 14m 192.0.2.3 ip-192-0-2-3.region-code.compute.internal <none> <none> kube-system coredns-1234567890-12345 1/1 Running 0 14m 192.0.2.4 ip-192-0-2-4.region-code.compute.internal <none> <none> kube-system kube-proxy-12345 1/1 Running 0 7m46s 192.0.2.0 ip-192-0-2-0.region-code.compute.internal <none> <none> kube-system kube-proxy-67890 1/1 Running 0 7m43s 192.0.2.1 ip-192-0-2-1.region-code.compute.internal <none> <none>

    如需详细了解输出中显示的内容,请参阅 查看 Kubernetes 资源

第 3 步:删除集群和节点

在使用完成针对本教程而创建的集群和节点后,应使用下面的命令删除这些集群和节点,从而将它们清除。如果要在清除该集群前对其执行更多操作,请参阅 后续步骤

eksctl delete cluster --name my-cluster --region region-code

后续步骤

以下文档主题可帮助您扩展集群的此功能。