使用节点来管理计算资源 - Amazon EKS

帮助改进此页面

想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。

使用节点来管理计算资源

Kubernetes 节点是运行容器化应用程序的机器。每个节点包含下列组件:

  • 容器运行时:负责运行容器的软件。

  • kubelet – 确保该容器的运行状况良好且在其关联的 Pod 中运行。

  • kube-proxy – 维护允许与您的 Pods 通信的网络规则。

有关更多信息,请参阅 Kubernetes 文档中的节点

您的 Amazon EKS 集群可以在自行管理的节点Amazon EKS 托管节点组AWS Fargate 的任意组合中调度 Pods。要了解集群中部署的节点的更多信息,请参阅 在 AWS Management Console 中查看 Kubernetes 资源

重要

具有 Amazon EKS 的 AWS Fargate 在 AWS GovCloud(美国东部)和 AWS GovCloud(美国西部)不可用。

注意

节点必须位于与您创建集群时选择的子网相同 VPC 中。不过,节点不需要在相同子网中。

下表提供了在决定哪些选项最符合您的要求时需要评估的几个标准。此表不包括在 Amazon EKS 之外创建的已连接节点,这些节点只能够查看。

注意

Bottlerocket 与此表中的一般信息有一些具体的区别。有关更多信息,请参阅 GitHub 上的 Bottlerocket 文档

标准 EKS 托管节点组 自行管理的节点 AWS Fargate

可以部署到 AWS Outposts

不支持

可以部署到 AWS 本地区域

是 – 有关更多信息,请参阅 使用 AWS Local Zones 启动低延迟 EKS 集群

可以运行需要 Windows 的容器

– 尽管如此,您的集群仍然需要至少一个 Linux 节点(建议两个,以确保可用)。

可以运行需要 Linux 的容器

可以运行需要 Inferentia 芯片的工作负载

– 仅限 Amazon Linux 节点

– 仅限 Amazon Linux

可以运行需要 GPU 的工作负载

– 仅限 Amazon Linux 节点

– 仅限 Amazon Linux

可以运行需要 ARM 处理器的工作负载

不支持

可以运行 AWS Bottlerocket

不支持

Pods 之间共享内核运行时间环境

是 – 每个节点上的所有 Pods

是 – 每个节点上的所有 Pods

否 – 每个 Pod 拥有专用的内核

Pods 之间共享 CPU、内存、存储和网络资源。

是 – 可能导致每个节点上存在未使用的资源

是 – 可能导致每个节点上存在未使用的资源

否 – 每个 Pod 都有专用资源,并且可以独立调整大小以最大限度地提高资源利用率。

容器组(pod)可以使用多于 Pod 规范中所请求的硬件和内存

是 – 如果 Pod 需要的资源多于请求的资源,并且节点上有可用的资源,那么该 Pod 可以使用额外的资源。

是 – 如果 Pod 需要的资源多于请求的资源,并且节点上有可用的资源,那么该 Pod 可以使用额外的资源。

否 – 但是,可以使用更大的 vCPU 和内存配置重新部署 Pod。

必须部署和管理 Amazon EC2 实例

– 如果您部署了 Amazon EKS 优化版 AMI,则可通过 Amazon EKS 自动执行。如果您部署了自定义 AMI,则必须手动更新实例。

是 – 手动配置或使用 Amazon EKS 提供的 AWS CloudFormation 模板来部署 Linux (x86)Linux (Arm) Windows 节点。

必须保护、维护和修补 Amazon EC2 实例的操作系统

不支持

在部署节点时提供引导参数,例如额外的 kubelet 参数。

是 – 搭配使用 eksctl启动模板与自定义 AMI

是 – 有关更多信息,请查看 GitHub 上的引导脚本使用信息

可以从与分配给节点的 IP 地址不同的 CIDR 块为 Pods 分配 IP 地址。 是 – 结合使用启动模板和自定义 AMI。有关更多信息,请参阅 使用启动模板自定义托管式节点 是 – 有关更多信息,请参阅 使用自定义网络在备用子网中部署 pods

可以通过 SSH 访问节点

否 – 没有主机操作系统要通过 SSH 访问的节点。

可以将您自己的自定义 AMI 部署到节点

是 – 使用启动模板

不支持

可以将自己的自定义 CNI 部署到节点

是 – 结合使用启动模板和自定义 AMI

不支持

必须自己更新节点 AMI

– 如果部署 Amazon EKS 优化版 AMI,更新可用时,Amazon EKS 控制台会通知您。可以在控制台中单击一键执行更新。如果部署自定义 AMI,更新可用时,Amazon EKS 控制台不会通知您。必须自己执行更新。

- 使用 Amazon EKS 控制台以外的其他工具。这是因为无法使用 Amazon EKS 控制台管理自行管理的节点。

必须自己更新节点 Kubernetes 版本

– 如果部署 Amazon EKS 优化版 AMI,更新可用时,Amazon EKS 控制台会通知您。可以在控制台中单击一键执行更新。如果部署自定义 AMI,更新可用时,Amazon EKS 控制台不会通知您。必须自己执行更新。

- 使用 Amazon EKS 控制台以外的其他工具。这是因为无法使用 Amazon EKS 控制台管理自行管理的节点。

否 – 您不管理节点。

可以为 Pods 使用 Amazon EBS 存储

不支持

可以为 Pods 使用 Amazon EFS 存储

可以为 Pods 使用 Amazon FSx for Lustre 存储

不支持

可以对服务使用 Network Load Balancer

是的,当使用 创建网络负载均衡器

Pod 可以在公有子网中运行

不支持

可以将不同的 VPC 安全组分配给各个 Pods

– 仅限 Linux 节点

– 仅限 Linux 节点

可以运行 Kubernetes DaemonSets

不支持

在 Pod 清单中支持 HostPortHostNetwork

不支持

AWS 区域 可用性

所有 Amazon EKS 支持的区域

所有 Amazon EKS 支持的区域

部分 Amazon EKS 支持的区域

可以在 Amazon EC2 专属主机上运行容器

不支持

定价

运行多个 Pods 的 Amazon EC2 实例的成本。有关更多信息,请参阅 Amazon EC2 定价

运行多个 Pods 的 Amazon EC2 实例的成本。有关更多信息,请参阅 Amazon EC2 定价

单个 Fargate 内存和 CPU 配置的成本。每个 Pod 都有自己的成本。有关更多信息,请参阅AWS Fargate 定价