开始使用 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 中所述安装并配置 AWS CLI、kubectl 和 eksctl 工具。

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

重要

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

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

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

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

使用以下命令创建 Amazon EKS 集群。将 my-cluster 替换为您自己的值。名称只能包含字母数字字符(区分大小写)和连字符。该名称必须以字母数字字符开头,且不得超过 100 个字符。对于您在其中创建集群的 AWS 区域和 AWS 账户,该名称必须在其内具有唯一性。请将 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/config 中创建了 kubectl 配置文件,或在计算机上 ~/.kube/config 中的现有配置文件中添加了新集群的配置。

完成集群创建后,在 AWS 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-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

    如需详细了解输出中显示的内容,请参阅 在 AWS Management Console中查看 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>

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

第 3 步:删除集群和节点

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

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

后续步骤

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