开始使用 Amazon EKS – eksctl - Amazon EKS

开始使用 Amazon EKS – eksctl

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

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

先决条件

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

  • kubectl – 用于使用 Kubernetes 集群的命令行工具。本指南要求您使用 1.21 版或更高版本。有关更多信息,请参阅 安装 kubectl

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

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

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

重要

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

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

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

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

使用以下命令创建 Amazon EKS 集群。您可以将 my-cluster 替换为自己的值。集群名称只能包含字母数字字符(区分大小写)和连字符。该名称必须以字母字符开头,且不得超过 128 个字符。请将 region-code 替换为 Amazon EKS 支持的任何 AWS 区域。有关 AWS 区域列表,请参阅 AWS 一般参考中的 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 文件添加了新集群的配置。

完成集群创建后,在 AWS CloudFormation 控制台 https://console.aws.amazon.com/cloudformation 中查看名为 eksctl-my-cluster-cluster 的 AWS 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-168-141-147.region-code.compute.internal Ready <none> 8m3s v1.21.5-eks-7c9bda 192.168.141.147 <none> Amazon Linux 2 5.4.156-83.273.amzn2.x86_64 containerd://1.3.2 fargate-ip-192-168-164-53.region-code.compute.internal Ready <none> 7m30s v1.21.5-eks-7c9bda 192.168.164.53 <none> Amazon Linux 2 5.4.156-83.273.amzn2.x86_64 containerd://1.3.2
    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.21.5-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.21.5-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

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

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

    kubectl get pods --all-namespaces -o wide

    输出

    Fargate – Linux
    NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system coredns-69dfb8f894-9z95l 1/1 Running 0 18m 192.168.164.53 fargate-ip-192-168-164-53.region-code.compute.internal <none> <none> kube-system coredns-69dfb8f894-c8v66 1/1 Running 0 18m 192.168.141.147 fargate-ip-192-168-141-147.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-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>

    如需详细了解输出中显示的内容,请参阅 查看工作负载

第 3 步:删除集群和节点

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

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

后续步骤

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