将示例 inflate 工作负载部署到 Amazon EKS 自动模式集群 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

将示例 inflate 工作负载部署到 Amazon EKS 自动模式集群

在本教程中,您将了解如何将示例工作负载部署到 EKS 自动模式集群,并观察其如何自动预置所需的计算资源。您将使用 kubectl 命令来观察集群行为,并亲眼见证自动模式如何在 Amazon 上简化 Kubernetes 的操作。完成本教程后,您将了解 EKS 自动模式如何通过自动管理底层计算资源来响应工作负载部署,无需手动配置节点组。

先决条件

  • 一个启用了计算功能的 Amazon EKS 自动模式集群。记下集群的名称和 Amazon 区域。

  • 一个具有管理联网、计算和 EKS 资源的足够权限的 IAM 主体,例如用户或角色。

  • 已使用某个 IAM 身份 安装并配置了 aws CLI。

  • 已安装 kubectl CLI 并连接到集群。

第 1 步:检查现有的计算资源(可选)

首先,使用 kubectl 列出集群上的节点池。

kubectl get nodepools

示例输出:

general-purpose

在本教程中,我们将部署一个配置为使用 general-purpose 节点池的工作负载。此节点池已内置在 EKS 自动模式中,包括微服务和 Web 应用程序等一般工作负载的合理默认值。您可以创建自己的节点池。有关更多信息,请参阅 为 EKS 自动模式创建节点池

然后,使用 kubectl 列出连接到集群的节点。

kubectl get nodes

如果您刚刚创建了 EKS 自动模式集群,则将没有任何节点。

在本教程中,您将部署一个示例工作负载。如果没有节点,或者现有节点不能满足工作负载的要求,EKS 自动模式将预置一个新节点。

第 2 步:将示例应用程序部署到集群

检查以下 Kubernetes 部署并将其另存为 inflate.yaml

apiVersion: apps/v1 kind: Deployment metadata: name: inflate spec: replicas: 1 selector: matchLabels: app: inflate template: metadata: labels: app: inflate spec: terminationGracePeriodSeconds: 0 nodeSelector: eks.amazonaws.com/compute-type: auto securityContext: runAsUser: 1000 runAsGroup: 3000 fsGroup: 2000 containers: - name: inflate image: public.ecr.aws/eks-distro/kubernetes/pause:3.7 resources: requests: cpu: 1 securityContext: allowPrivilegeEscalation: false

请注意,eks.amazonaws.com/compute-type: auto 选择器要求将工作负载部署到 Amazon EKS 自动模式节点上。

将部署应用到集群。

kubectl apply -f inflate.yaml

第 3 步:观察 Kubernetes 事件

使用以下命令观察 Kubernetes 事件,包括创建新节点。使用 ctrl+c 停止观察事件。

kubectl get events -w --sort-by '.lastTimestamp'

再次使用 kubectl 列出连接到集群的节点。记下新创建的节点。

kubectl get nodes

第 4 步:在 Amazon 控制台中查看节点和实例

您可以在 EKS 控制台中查看 EKS 自动模式节点,以及在 EC2 控制台中查看关联的 EC2 实例。

由 EKS 自动模式部署的 EC2 实例存在限制。您不能在 EKS 自动模式节点上运行任意命令。

第 5 步:删除部署

使用 kubectl 删除示例部署

kubectl delete -f inflate.yaml

如果集群中没有部署其他工作负载,则由 EKS 自动模式创建的节点将为空。

在默认配置中,EKS 自动模式会检测已空三十秒钟的节点,并将其终止。

使用 kubectl 或 EC2 控制台确认关联的实例已被删除。