帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
借助 Amazon EKS 混合节点功能,您可以将本地和边缘基础设施用作 Amazon EKS 集群中的节点。AWS 负责管理由 AWS 托管的 Amazon EKS 集群的 Kubernetes 控制面板,而您负责管理在本地或边缘环境中运行的混合节点。这样就实现了跨环境的统一 Kubernetes 管理,将本地和边缘应用程序的 Kubernetes 控制面板管理工作转移到 AWS。
Amazon EKS 混合节点功能可支持任何本地硬件或虚拟机,从而在任何需要运行应用程序的位置享受到 Amazon EKS 的效率、可扩展性和可用性。您可以将各种 Amazon EKS 功能与 Amazon EKS 混合节点功能结合使用,包括 Amazon EKS 附加组件、Amazon EKS 容器组身份、集群访问条目、集群及见解和 Kubernetes 版本延期支持。Amazon EKS 混合节点功能原生集成了多项 AWS 服务,包括 AWS Systems Manager、AWS IAM Roles Anywhere、Amazon Managed Service for Prometheus、Amazon CloudWatch 和 Amazon GuardDuty,可以满足集中监控、日志记录和身份管理等需求。
使用 Amazon EKS 混合节点功能时,无预付承诺或最低费用要求,并且在将混合节点挂载到 Amazon EKS 集群时,您只需按小时为混合节点的 vCPU 资源付费。有关详细定价信息,请参阅 Amazon EKS 定价
有关适用于本地部署和边缘部署的其他 Amazon EKS 选项的概述,请参阅跨云端和本地环境部署 Amazon EKS 集群。
Amazon EKS 混合节点功能的一般概念
-
要使用 Amazon EKS 混合节点功能,必须在您的本地环境和 AWS 之间建立可靠的连接。Amazon EKS 混合节点功能不适合连接断开、中断、间歇性或受限(DDIL)的环境。如果在 DDIL 环境中运行,可以考虑使用 Amazon EKS Anywhere
。 -
不支持在云基础设施(包括 AWS 区域、AWS Local Zones、AWS Outposts 或其他云)中运行 Amazon EKS 混合节点功能。在 AWS 区域中运行时,应使用 Amazon EKS 自动模式、Karpenter、Amazon EC2 托管节点组、自主管理型节点或 AWS Fargate。在 AWS Local Zones 上运行时,应使用 Amazon EC2 托管式节点组或 Amazon EC2 自主管理型节点。只有 Amazon EC2 自主管理型节点可以在 AWS Outposts 或 AWS Wavelength Zones 上使用。
-
单个 Amazon EKS 集群可用于运行混合节点以及 AWS 区域、AWS Local Zones 或 AWS Outposts 中的节点。
-
除 AWS GovCloud(美国)区域和 AWS 中国区域外,Amazon EKS 混合节点功能已在所有 AWS 区域开放。
-
如果您在 Amazon EC2 实例上运行混合节点,则需要支付混合节点功能使用费。
-
混合节点功能使用费从节点加入 Amazon EKS 集群时起开始计费,并在从集群中移除节点时停止计费。如果您不使用混合节点,请务必将其从 Amazon EKS 集群中移除。
基础设施管理
-
Amazon EKS 混合节点功能采用自带基础设施的方法,即您负责预置和管理用于混合节点的物理计算机或虚拟机以及操作系统。
-
Amazon EKS 混合节点功能与运行节点的基础设施无关。您可以在物理计算机或虚拟机以及 x86 和 ARM 架构上运行混合节点。
为混合节点准备操作系统
-
Amazon Linux 2023(AL2023):您可以使用 Amazon Linux 2023(AL2023)来作为混合节点的节点操作系统,但只能在 VMware、KVM 和 Hyper-V 等虚拟化环境中使用。AWS 支持将混合节点与 AL2023 集成,但是在 Amazon EC2 之外运行 AL2023 时,相关节点将不属于 AWS Support 计划的适用范围。
-
Ubuntu:您可以使用 Ubuntu 20.04、Ubuntu 22.04 和 Ubuntu 24.04 作为混合节点的节点操作系统。
-
Red Hat Enterprise Linux(RHEL):您可以使用 RHEL 8 和 RHEL 9 来作为混合节点的节点操作系统。
Kubernetes 和平台版本
-
Amazon EKS 混合节点功能支持的 Kubernetes 版本和弃用计划与 Amazon EKS 相同,包括标准和扩展 Kubernetes 版本支持。要详细了解 Amazon EKS 中的 Kubernetes 版本,请参阅了解 EKS 上的 Kubernetes 版本生命周期。有关 Amazon EKS 平台版本的更多信息,请参阅查看每个 Kubernetes 版本的 Amazon EKS 平台版本。
-
您必须创建新的 Amazon EKS 集群才能使用 Amazon EKS 混合节点功能。混合节点不能用于现有的 Amazon EKS 集群。
联网
-
Amazon EKS 控制面板和混合节点之间的通信通过您在集群创建期间传递的 VPC 和子网进行路由,此方法以 Amazon EKS 中控制面板到节点联网的现有机制为基础。
-
使用 Amazon EKS 混合节点功能时,您可以灵活选择将本地网络连接到 AWS 中的 VPC 的首选方法。有多个有文档记录的选项可供选择,包括 AWS Site-to-Site VPN 和 AWS Direct Connect,您可以根据自己的应用场景选择最适合的选项。
-
IP 地址系列:混合节点只能与配置了
IPv4
IP 地址系列的 Amazon EKS 集群结合使用。您不能使用配置了IPv6
IP 地址系列的 Amazon EKS 集群。同理,本地节点和容器组(pod)CIDR 必须为IPv4
RFC1918 CIDR 块。 -
您必须在本地环境和防火墙中为 Amazon EKS 混合节点功能启用所需的域、协议和端口。有关更多信息(包括最低联网要求),请参阅准备混合节点的联网。
-
集群端点访问权限:您可以使用“公有”或“私有”集群端点访问权限,但不应使用“公有和私有”集群端点访问权限,因为对于来自本地环境的查询,端点 DNS 解析将始终解析为公有地址。
-
有关混合节点与 AWS 区域之间网络连接断开等场景的信息和最佳实践,请参阅《Amazon EKS Best Practices Guide》的 hybrid nodes 部分。
-
应用程序负载均衡:Kubernetes 有一个服务
对象,用于定义应用程序的名称和域名,并对其进行解析和负载均衡。默认情况下, type:LoadBalancer
类型的服务还会为来自集群外部的流量创建一个 AWS 经典负载均衡器。您可以使用附加组件来更改此行为。具体而言,我们建议使用 AWS 应用程序负载均衡器和 AWS 网络负载均衡器(均由 AWS 负载均衡器控制器创建),而不要使用 AWS 经典负载均衡器。有关在混合环境中安装 AWS 负载均衡器控制器的步骤,请参阅 AWS Load Balancer Controller。
混合节点的安全性
-
Amazon EKS 混合节点功能使用临时 IAM 凭证来对 Amazon EKS 集群进行身份验证。您可以使用 AWS IAM Roles Anywhere 或 AWS Systems Manager(SSM)混合激活为混合节点预置本地 IAM 凭证。如果您没有具有证书颁发机构(CA)的现有公钥基础设施(PKI)和本地环境的证书,则建议使用 AWS SSM 混合激活。如果您在确实具有现有的 PKI 和本地证书,请使用 AWS IAM Roles Anywhere。
-
您可以为启用混合节点功能的 Amazon EKS 集群使用
API
或API_AND_CONFIG_MAP
集群身份验证模式。将名为HYBRID_LINUX
的集群访问入口类型与混合节点 IAM 角色结合使用,从而使混合节点能够加入 Amazon EKS 集群。 -
启用混合节点功能的 Amazon EKS 集群支持 OIDC 身份验证。
-
您可以将 Amazon EKS 容器组身份和服务账户的 IAM 角色(IRSA)与在混合节点上运行的应用程序配合使用,从而为使用其他 AWS 服务在混合节点上运行的容器组(pod)实现精细访问控制。
-
您可以将 Amazon GuardDuty EKS 防护与启用混合节点功能的 Amazon EKS 集群配合使用,从而分析访问集群的用户和应用程序的活动。
混合节点的附加组件
有关详细信息,请参阅 为混合节点配置附加组件。
-
容器网络接口(CNI):AWS VPC CNI 不能用于混合节点。支持 Cilium 和 Calico 的核心功能以用于混合节点。您可以使用自己选择的工具(例如 Helm)来管理 CNI。有关更多信息,请参阅 为混合节点配置 CNI。
-
kube-proxy
和 CoreDNS:kube-proxy
和 CoreDNS 会在混合节点加入 Amazon EKS 集群时自动安装。这些附加组件可以在集群创建后作为 Amazon EKS 附加组件进行管理。 -
Ingress 和负载均衡:对于通过 AWS Direct Connect 或 AWS Site-to-Site VPN 连接的混合节点上的工作负载,您可以将 AWS 负载均衡器控制器和应用程序负载均衡器(ALB)或网络负载均衡器(NLB)与目标类型
ip
结合使用。您也可以使用自己选择的 Ingress 控制器或负载均衡器来处理本地环境中的应用程序流量。 -
指标:您可以使用 Amazon Managed Prometheus(AMP)无代理抓取程序、AWS Distro for Open Telemetry(ADOT)以及 Amazon CloudWatch 可观测性代理与混合节点结合使用。要将 AMP 无代理抓取程序用于混合节点的容器组(pod)指标,您的容器组(pod)必须可以从 Amazon EKS 集群所用 VPC 进行访问。
-
日志:您可以为启用混合节点功能的集群启用 Amazon EKS 控制面板日志记录。您可以将 ADOT EKS 附加组件和 Amazon CloudWatch 可观测性代理 EKS 附加组件用于混合节点和容器组(pod)日志记录。
用户界面
-
节点管理:Amazon EKS 混合节点功能 CLI 称为
nodeadm
并在每台本地主机上运行,从而简化混合节点组件的安装、配置、注册和卸载。混合节点nodeadm
版本与 AL2023 Amazon EKS 优化型 AMI 中使用的nodeadm
版本不同。对于在 Amazon EC2 中运行的节点,不应使用混合节点nodeadm
版本。 -
集群管理:用于集群管理的 Amazon EKS 用户界面与启用混合节点功能的 Amazon EKS 集群相同。这包括 AWS Management Console、AWS API、AWS SDK、AWS CLI、eksctl CLI、AWS CloudFormation 和 Terraform。