Amazon Elastic Kubernetes Service(Amazon EKS)是一项托管的 AWS Kubernetes 服务,可扩展、管理和部署容器化应用程序。它通常在 Amazon 公共云中运行,但也可以在本地部署。Amazon EKS 的 Kubernetes 管理基础架构跨多个可用区 (AZ) 运行。AWS EKS 通过了 Kubernetes 兼容性认证,这意味着您可以将 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 架构由以下主要组件组成:集群、节点和网络。
集群由控制平面和 EKS 节点构成。
控制平面在 Amazon 托管 AWS 账户中的一组专用 EC2 实例上运行,并提供可供应用程序访问的 API 端点。它以单租户模式运行,负责控制 Kubernetes 主节点,例如 API Server 和 etcd。
etcd 上的数据使用 Amazon Key Management (KMS) 进行加密。Kubernetes 主节点分布在多个AWS 可用区 (AZ) 中,流量由 Elastic Load Balancer (ELB) 管理。
Kubernetes 工作节点在您组织 AWS 账户中的 EC2 实例上运行。它们使用 API 端点通过证书文件连接到控制平面。每个集群都使用唯一的证书。
相关内容:AWS Kubernetes 集群:使用 EC2 和 EKS 快速设置
Amazon EKS 群集可以使用三种主要方法来安排 Pod。
在EKS中,“节点”是指可用于调度Kubernetes Pod的Amazon EC2实例。Pod 连接到 EKS 集群的 API 端点。节点被组织成节点组。节点组中的所有EC2实例必须具有相同的:
您可以在集群中拥有多个节点组,每个节点组代表不同类型的实例或具有不同角色的实例。
Amazon EKS 提供具有自动化生命周期管理的托管节点组。这允许您通过一个操作自动创建、更新或关闭节点。EKS 使用针对 EKS 使用而优化的 Amazon 最新 Linux AMI。当您终止节点时,EKS 会优雅地排出它们,以确保没有服务中断。您可以轻松地为整个节点组应用 Kubernetes 标签,以实现管理目的。
托管节点通过由Amazon EKS服务管理的EC2自动扩展组进行操作。您可以定义组应在哪些可用区域中运行。启动托管节点组有多种方式,包括 EKS 控制台、eksctl、Amazon CLI、Amazon API 或 Amazon 自动化工具(包括 CloudFormation)。
您可以使用无服务器容器服务 Amazon Fargate 来运行工作节点,而无需管理底层服务器基础设施。Fargate 仅针对实际使用的 vCPU 和内存向您收费。它根据集群节点实际所需动态分配更多计算资源。
下图显示了 EKS 集群的网络架构:
图片来源:AWS
Amazon EKS 群集在虚拟私有云 (VPC) 中运行,VPC 是 Amazon 数据中心内的安全私有网络。EKS 将所有资源部署到您在一个 Amazon 区域中选择的 VPC 中的现有子网。
EKS 控制平面使用的网络接口
EKS控制平面在亚马逊管理的VPC中运行。它在您的帐户中创建和管理与您创建的每个 EKS 集群相关的网络接口。EC2 和 Fargate 实例使用这些网络接口连接到 EKS 控制平面。
默认情况下,EKS会暴露一个公共端点。如果您希望为集群提供额外的安全性,则可以启用专用端点,和/或限制对特定 IP 地址的访问。您可以配置本地网络或其他虚拟私有云(VPC)与 EKS 集群所用 VPC 之间的连接。
EKS 集群使用的每个 EC2 实例都存在于一个子网中。您有两种选项来定义网络:
NetApp Cloud Volumes ONTAP,领先的企业级存储管理解决方案,在 AWS、Azure 和 Google Cloud 上提供安全、经过验证的存储管理服务。Cloud Volumes ONTAP 支持高达 368 TB 的容量,并支持各种用例,如文件服务、数据库、DevOps 或任何其他企业工作负载,具有强大的功能集,包括高可用性、数据保护、存储效率、Kubernetes 集成等。
特别是,Cloud Volumes ONTAP 支持Kubernetes 持久卷配置和管理容器化工作负载的要求。