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

开始使用 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 集群一起使用的命令行工具。本指南要求您使用 1.23 版或更高版本。有关更多信息,请参阅安装或更新 kubectl

  • eksctl – 用于处理 EKS 集群的命令行工具,该工具可自动执行许多单独任务。本指南要求您使用 0.114.0 版或更高版本。有关更多信息,请参阅安装或更新 eksctl

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

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

重要

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

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

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

    输出示例如下。

    Managed nodes – Linux
    NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME ip-192-168-12-49.region-code.compute.internal Ready <none> 6m7s v1.23.7-eks-d1db3c 192.168.12.49 52.35.116.65 Amazon Linux 2 5.4.156-83.273.amzn2.x86_64 docker://20.10.7 ip-192-168-72-129.region-code.compute.internal Ready <none> 6m4s v1.23.7-eks-d1db3c 192.168.72.129 44.242.140.21 Amazon Linux 2 5.4.156-83.273.amzn2.x86_64 docker://20.10.7

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

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

    kubectl get pods -A -o wide

    输出示例如下。

    Managed nodes – Linux
    NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system aws-node-6ctpm 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.region-code.compute.internal <none> <none> kube-system aws-node-cbntg 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.region-code.compute.internal <none> <none> kube-system coredns-559b5db75d-26t47 1/1 Running 0 14m 192.168.78.81 ip-192-168-72-129.region-code.compute.internal <none> <none> kube-system coredns-559b5db75d-9rvnk 1/1 Running 0 14m 192.168.29.248 ip-192-168-12-49.region-code.compute.internal <none> <none> kube-system kube-proxy-l8pbd 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.region-code.compute.internal <none> <none> kube-system kube-proxy-zh85h 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.region-code.compute.internal <none> <none>

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

第 3 步:删除集群和节点

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

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

后续步骤

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