帮助改进此页面
想为本用户指南做出贡献? 滚动到页面底部,然后选择在 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 实例的操作系统 |
是 |
是 |
不支持 |
在部署节点时提供引导参数,例如额外的 |
是 – 搭配使用 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 清单中支持 |
是 |
是 |
不支持 |
AWS 区域 可用性 |
|||
可以在 Amazon EC2 专属主机上运行容器 |
是 |
是 |
不支持 |
定价 |
运行多个 Pods 的 Amazon EC2 实例的成本。有关更多信息,请参阅 Amazon EC2 定价 |
运行多个 Pods 的 Amazon EC2 实例的成本。有关更多信息,请参阅 Amazon EC2 定价 |
单个 Fargate 内存和 CPU 配置的成本。每个 Pod 都有自己的成本。有关更多信息,请参阅AWS Fargate 定价 |