菜单

本页使用了机器翻译。某些内容可能不完美。敬请提出宝贵意见和建议。

分享反馈

AWS EKS 架构:群集、节点和网络

目录

分享该页面

Yifat Perry
Yifat Perry

什么是 AWS EKS?

Amazon Elastic Kubernetes Service(Amazon EKS)是一项托管的 AWS Kubernetes 服务,可扩展、管理和部署容器化应用程序。它通常在 Amazon 公共云中运行,但也可以在本地部署。Amazon EKS 的 Kubernetes 管理基础架构跨多个可用区 (AZ) 运行。AWS EKS 通过了 Kubernetes 兼容性认证,这意味着您可以将 EKS 与现有工具集成。

在本文中,您将了解:

Amazon EKS 的工作原理是什么?

EKS 集群由以下主要组件组成:控制平面和工作节点。每个集群都运行在自己完全托管的 Virtual Private Cloud (VPC) 中。

控制平面由三个主节点组成,每个主节点在不同的 AZ 中运行,以确保AWS 高可用性。定向到 Kubernetes API 的传入流量通过 AWS 网络负载均衡器 (NLB)。

工作节点运行在位于虚拟私有云(VPC)中的Amazon EC2实例上,该VPC并非由AWS管理。您可以控制和配置为工作节点分配的 VPC。您可以使用SSH为现有自动化系统提供访问权限,或用于配置工作节点。

主要有两种部署选项。您可以为每个环境或应用程序部署一个集群。或者,您可以通过定义IAM安全策略和Kubernetes命名空间,将单个集群部署给多个应用程序。

为了限制控制平面和群集之间的流量,EKS 提供了 Amazon VPC 网络策略。只有由 Kubernetes 基于角色的访问控制 (RBAC) 定义的授权群集和帐户才能查看或与控制平面组件通信。

下图说明了在 EKS 上部署集群的过程 - 您指示 EKS 配置集群,在后台配置云资源,然后您可以连接到 Kubernetes 集群并运行您的工作负载。

图片来源:AWS

AWS EKS 组件

AWS EKS 架构由以下主要组件组成:集群、节点和网络。

Amazon EKS 集群

集群由控制平面和 EKS 节点构成。


EKS 控制平面

控制平面在 Amazon 托管 AWS 账户中的一组专用 EC2 实例上运行,并提供可供应用程序访问的 API 端点。它以单租户模式运行,负责控制 Kubernetes 主节点,例如 API Server 和 etcd。

etcd 上的数据使用 Amazon Key Management (KMS) 进行加密。Kubernetes 主节点分布在多个AWS 可用区 (AZ) 中,流量由 Elastic Load Balancer (ELB) 管理。


EKS 节点

Kubernetes 工作节点在您组织 AWS 账户中的 EC2 实例上运行。它们使用 API 端点通过证书文件连接到控制平面。每个集群都使用唯一的证书。

相关内容:AWS Kubernetes 集群:使用 EC2 和 EKS 快速设置

Amazon EKS 节点

Amazon EKS 群集可以使用三种主要方法来安排 Pod。


自管理节点

在EKS中,“节点”是指可用于调度Kubernetes Pod的Amazon EC2实例。Pod 连接到 EKS 集群的 API 端点。节点被组织成节点组。节点组中的所有EC2实例必须具有相同的:

  • Amazon 实例类型
  • Amazon Machine Image (IAM)
  • IAM 角色

您可以在集群中拥有多个节点组,每个节点组代表不同类型的实例或具有不同角色的实例。


托管节点组

Amazon EKS 提供具有自动化生命周期管理的托管节点组。这允许您通过一个操作自动创建、更新或关闭节点。EKS 使用针对 EKS 使用而优化的 Amazon 最新 Linux AMI。当您终止节点时,EKS 会优雅地排出它们,以确保没有服务中断。您可以轻松地为整个节点组应用 Kubernetes 标签,以实现管理目的。

托管节点通过由Amazon EKS服务管理的EC2自动扩展组进行操作。您可以定义组应在哪些可用区域中运行。启动托管节点组有多种方式,包括 EKS 控制台、eksctl、Amazon CLI、Amazon API 或 Amazon 自动化工具(包括 CloudFormation)。


Amazon Fargate

您可以使用无服务器容器服务 Amazon Fargate 来运行工作节点,而无需管理底层服务器基础设施。Fargate 仅针对实际使用的 vCPU 和内存向您收费。它根据集群节点实际所需动态分配更多计算资源。

Amazon EKS 网络

下图显示了 EKS 集群的网络架构:

图片来源:AWS

Amazon EKS 群集在虚拟私有云 (VPC) 中运行,VPC 是 Amazon 数据中心内的安全私有网络。EKS 将所有资源部署到您在一个 Amazon 区域中选择的 VPC 中的现有子网。

EKS 控制平面使用的网络接口

EKS控制平面在亚马逊管理的VPC中运行。它在您的帐户中创建和管理与您创建的每个 EKS 集群相关的网络接口。EC2 和 Fargate 实例使用这些网络接口连接到 EKS 控制平面。

默认情况下,EKS会暴露一个公共端点。如果您希望为集群提供额外的安全性,则可以启用专用端点,和/或限制对特定 IP 地址的访问。您可以配置本地网络或其他虚拟私有云(VPC)与 EKS 集群所用 VPC 之间的连接。


EKS 节点的网络连接

EKS 集群使用的每个 EC2 实例都存在于一个子网中。您有两种选项来定义网络:

  • 使用 AWS CloudFormation 模板创建子网——在这种情况下,公用子网中的节点将获得公用 IP,以及子网使用的 CIDR 块中的专用 IP。
  • 通过容器网络接口 (CNI) 使用自定义网络——这使您可以将 IP 地址从任何子网分配给 pod,即使 EC2 实例不属于该子网。启动节点时必须启用自定义网络。

使用 Cloud Volumes ONTAP 的 AWS EKS 存储

NetApp Cloud Volumes ONTAP,领先的企业级存储管理解决方案,在 AWS、Azure 和 Google Cloud 上提供安全、经过验证的存储管理服务。Cloud Volumes ONTAP 支持高达 368 TB 的容量,并支持各种用例,如文件服务、数据库、DevOps 或任何其他企业工作负载,具有强大的功能集,包括高可用性、数据保护、存储效率、Kubernetes 集成等。

特别是,Cloud Volumes ONTAP 支持Kubernetes 持久卷配置和管理容器化工作负载的要求。

Drift chat loading