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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon EKS 入门eksctl

本指南可帮助您创建要在中开始使用亚马逊弹性 Kubernetes 服务 (Amazon EKS) 所需的所有资源。eksctl,这是一种用于在 Amazon EKS 上创建和管理 Kubernetes 集群的简单命令行实用程序。在本教程结束时,您将获得一个可在其中部署应用程序的正在运行的 Amazon EKS 集群。

本指南中的步骤会自动为您创建多个资源,当您使用Amazon Web Services Management Console。如果您希望手动创建大多数资源以更好地了解它们之间的交互方式,请使用Amazon Web Services Management Console创建群集和计算。有关更多信息,请参阅 Amazon EKS 入门Amazon Web Services Management Console和AmazonCLI

Prerequisites

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

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

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

创建集群和节点。

重要

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

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

  • Fargate — Linux— 选择此类型的节点,如果您想在AmazonFargate

  • 托管节点 — Linux— 如果要在 Amazon EC2 实例上运行 Amazon Linux 应用程序,请选择此类型的节点。虽然本指南中未作介绍,但您还可以将Windows 自行管理瓶装节点添加到您的集群。集群必须至少包含一个 Linux 节点,即使您的所有工作负载都是 Windows。

选择带有要用于创建集群的节点类型名称的选项卡。

Fargate – Linux

使用 Fargate Linux 节点创建集群

  1. 创建您的亚马逊 EKS 集群AmazonFargate 配置Pod 执行角色使用以下命令。Replacemy-cluster使用您自己的值。尽管您可以在任何Amazon EKS 支持的区域,在本教程中,它是在。

    eksctl create cluster \ --name my-cluster \ --region us-west-2 \ --fargate

    上一个命令主要使用默认设置创建群集和 Fargate 配置文件。创建完成后,查看名为eksctl-<my-cluster>-cluster中的Amazon CloudFormation控制台查看所有已创建的资源。有关所有设置和选项的列表,输入eksctl create cluster -h。有关所有设置和选项的文档,请参阅创建和管理集群中的eksctl文档中)。

    输出

    创建集群和 Fargate 配置文件时,您将看到几行输出。创建需要几分钟时间。输出的最后一行类似于以下示例行。

    ... [✓] EKS cluster "my-cluster" in "us-west-2" region is ready

    如果节点无法加入集群,请参阅节点未能加入集群在故障排除指南中。

    eksctl已创建kubectl config中的文件~/.kube或将新集群的配置添加到现有config中的文件~/.kube

  2. 测试配置。

    kubectl get svc

    输出

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m
Managed nodes – Linux

使用 Amazon EC2 Linux 节点创建集群

创建集群和 Linux 托管节点组。Replacemy-cluster使用您自己的值。

Replace<your-key>(包括<>)替换为现有 key pair 的名称。如果还没有 key pair,则可以使用下面的命令进行创建。如果需要,可以更改us-west-2添加到您在其中创建集群的区域。请确保将返回输出保存在本地计算机上的文件中。有关更多信息,请参阅 。创建或导入密钥对适用于 Linux 实例的 Amazon EC2 用户指南中的 Amazon EC2 用户指南。虽然本指南中不需要该密钥,但您只能在创建节点组时指定要使用的密钥。指定密钥允许您在创建节点后对节点进行 SSH 访问。要运行命令,您需要在AmazonCLI 版本 2.2.5 或更高版本或 1.19.75 或更高版本。有关更多信息,请参阅 。安装、更新和卸载AmazonCLI中的Amazon命令行界面用户指南。

aws ec2 create-key-pair --region cn-north-1 --key-name myKeyPair

使用以下命令创建集群和节点。将替换为示例值(包括<>)与您自己的值。尽管您可以在任何Amazon EKS 支持的区域,在本教程中,它是在中国(北京)

eksctl create cluster \ --name my-cluster \ --region cn-north-1 \ --with-oidc \ --ssh-access \ --ssh-public-key <your-key> \ --managed

上一个命令使用主要使用默认 Amazon EKS 设置创建具有节点的集群。要查看创建的所有资源,请查看名为eksctl-<my-cluster>-cluster中的Amazon CloudFormation控制台位于https://console.aws.amazon.com/cloudformation。有关所有设置和选项的列表,输入eksctl create cluster -h。有关所有设置和选项的文档,请参阅创建和管理集群中的eksctl文档中)。

输出

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

... [✓] EKS cluster "my-cluster" in "cn-north-1" region is ready

eksctl已创建kubectl config中的文件~/.kube或将新集群的配置添加到现有config中的文件~/.kube

第 2 步:查看资源

  1. 查看您的集群节点。

    kubectl get nodes -o wide

    Amazon EC2 节点输出

    Fargate 节点输出

    NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME fargate-ip-192-168-141-147.cn-north-1.compute.internal Ready <none> 8m3s v1.18.8-eks-7c9bda 192.168.141.147 <none> Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 containerd://1.3.2 fargate-ip-192-168-164-53.cn-north-1.compute.internal Ready <none> 7m30s v1.18.8-eks-7c9bda 192.168.164.53 <none> Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 containerd://1.3.2

    有关此处所看到的更多信息,请参阅View 节点

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

    kubectl get pods --all-namespaces -o wide

    Amazon EC2 输出

    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.cn-north-1.compute.internal <none> <none> kube-system aws-node-cbntg 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.cn-north-1.compute.internal <none> <none> kube-system coredns-559b5db75d-26t47 1/1 Running 0 14m 192.168.78.81 ip-192-168-72-129.cn-north-1.compute.internal <none> <none> kube-system coredns-559b5db75d-9rvnk 1/1 Running 0 14m 192.168.29.248 ip-192-168-12-49.cn-north-1.compute.internal <none> <none> kube-system kube-proxy-l8pbd 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.cn-north-1.compute.internal <none> <none> kube-system kube-proxy-zh85h 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.cn-north-1.compute.internal <none> <none>

    Fargate 输出

    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.cn-north-1.compute.internal <none> <none> kube-system coredns-69dfb8f894-c8v66 1/1 Running 0 18m 192.168.141.147 fargate-ip-192-168-141-147.cn-north-1.compute.internal <none> <none>

    有关此处所看到的更多信息,请参阅查看工作负载

第 3 步:删除群集和节点

在您完成为本教程创建的集群和节点后,应通过删除集群和节点进行清除。如果在清除该集群前要对其执行更多操作,请参阅后续步骤

删除群集和节点。

eksctl delete cluster --name my-cluster --region us-west-2

后续步骤

现在,您已有使用节点运行的 Amazon EKS 集群,那么就可以准备开始安装 Kubernetes 插件并将应用程序部署到您的集群。以下文档主题可帮助您扩展集群的此功能。