Amazon EKS 架构
Amazon EKS 与的 Kubernetes 通用集群架构保持一致。有关更多信息,请参阅 Kubernetes 文档中的 Kubernetes 组件
控制层面
Amazon EKS 确保每个集群都有自己唯一的 Kubernetes 控制面板。这种设计使每个集群的基础设施保持独立,集群或 Amazon 账户之间没有重叠。该设置包括:
- 分布式组件
-
控制面板将至少两个 API 服务器实例和三个
etcd
实例放置在 Amazon Web Services 区域 内的三个 Amazon 可用区中。 - 最佳性能
-
Amazon EKS 会主动监控和调整控制面板实例,以保持最高性能。
- 故障恢复能力
-
如果控制面板实例出现故障,Amazon EKS 会快速替换它,必要时使用不同的可用区。
- 稳定的正常运行时间
-
通过在多个可用区运行集群,实现了可靠的 API 服务器端点可用性服务水平协议(SLA)
。
Amazon EKS 使用 Amazon Virtual Private Cloud(Amazon VPC)来限制单个集群中控制面板组件之间的流量。除非得到基于 Kubernetes 角色的访问控制(RBAC)策略授权,否则,集群组件无法查看或接收来自其他集群或其他 Amazon 账户的通信。
计算
除了控制面板,Amazon EKS 集群还有一组称为节点的工作计算机。选择适当的 Amazon EKS 集群节点类型对于满足您的特定要求和优化资源利用率至关重要。Amazon EKS 提供以下主节点类型:
- Amazon Fargate
-
Fargate 是一个用于容器的无服务器计算引擎,无需管理底层实例。借助 Fargate,您可以指定应用程序的资源需求,然后 Amazon 自动预置、扩展和维护基础设施。对于优先考虑易用性并希望专注于应用程序开发和部署而不是管理基础设施的用户来说,此选项非常适合。
- Karpenter
-
Karpenter
是一款灵活、高性能 Kubernetes 集群自动缩放器,可帮助提高应用程序可用性和集群效率。Karpenter 可启动适当规模的计算资源来响应不断变化的应用程序负载。此选项可以预置即时计算资源,以满足您的工作负载要求。 - 托管节点组
-
托管节点组是自动化和自定义的混合体,用于管理 Amazon EKS 集群中的 Amazon EC2 实例集合。Amazon 负责修补、更新和扩展节点之类的任务,从而简化操作方面的工作。同时,还支持自定义
kubelet
参数,为高级 CPU 和内存管理策略提供了可能性。此外,它们还通过服务账户的 Amazon Identity and Access Management(IAM)角色增强安全性,同时限制每个集群对单独权限的需求。 - 自行管理的节点
-
自行管理节点可完全控制 Amazon EKS 集群中的 Amazon EC2 实例。您负责管理、扩展和维护节点,从而完全控制底层基础设施。对于需要对其节点进行精细控制和自定义,并准备投入时间管理和维护其基础设施的用户来说,此选项非常适合。