亚马逊AWS官方博客
适用于 Kubernetes 的 Amazon Elastic Container Service
关于容器,我的同事 Deepak Singh 可以细细道来!
— Jeff;
我们有很多 AWS 客户在 AWS 上运行 Kubernetes。实际上,根据 Cloud Native Computing Foundation 的数据,63% 的 Kubernetes 工作负载在 AWS 上运行。尽管 AWS 常用来运行 Kubernetes,客户还是需要进行大量手动配置才能管理其 Kubernetes 群集。您必须安装和运行 Kubernetes 主节点,并配置 Kubernetes 工作节点群集。为了使 Kubernetes 群集实现高可用性,必须跨不同可用区运行至少三个 Kubernetes 主节点。每一个主节点都需要进行配置才能相互通信、可靠地共享信息、均衡负载,在某个主节点发生故障时,才能将故障转移到其他主节点。全部设置完毕并开始运行后,您还必须负责主节点和工作节点软件的升级和修补。这都需要大量的操作知识,工作量巨大,客户要求我们把这一切进行简化。
Amazon EKS 简介
适用于 Kubernetes 的 Amazon Elastic Container Service (Amazon EKS) 是一种完全托管服务,借助该服务,您无需成为管理 Kubernetes 群集的专家,就可以在 AWS 上方便地运行 Kubernetes。我们认为开发人员会很喜欢这项服务的几个特点。首先,Amazon EKS 运行开源 Kubernetes 软件的上游版本,因此您可以使用 Kubernetes 社区的所有现有插件和工具。在 Amazon EKS 上运行的应用程序与在任何标准 Kubernetes 环境 (包括本地数据中心和公有云) 中运行的应用程序完全兼容。这意味着您无需进行任何代码修改,就可以方便地将 Kubernetes 应用程序迁移到 Amazon EKS。其次,Amazon EKS 跨三个可用区使用三个主节点自动运行 K8,以免发生单点故障。在一个 AWS 可用区发生故障时,这种多可用区架构具备复原能力。
第三,Amazon EKS 还可以自动检测和替换运行状况不佳的主节点,并对主节点进行自动版本升级和修补。最后,Amazon EKS 与许多关键 AWS 功能集成,如用于负载分配的 Elastic Load Balancing、用于身份验证的 IAM、用于隔离的 Amazon VPC、用于私有网络访问权限管理的 AWS PrivateLink 和用于日志记录的 AWS CloudTrail。
工作原理
现在,我们看看其中的工作原理。Amazon EKS 通过与 Heptio 协作将 IAM 身份验证与 Kubernetes RBAC (Kubernetes 基于本机角色的访问控制系统) 集成。
您可以直接将 RBAC 角色分配给每个 IAM 实体,这样能精细控制对 Kubernetes 主节点的访问权限。因此,您可以使用标准 Kubernetes 工具 (如 kubectl) 方便地管理 Kubernetes 群集。
如果您需要直接从自己的 Amazon VPC 访问 Kubernetes 主节点,还可以使用 PrivateLink。通过 PrivateLink,Kubernetes 主节点和 Amazon EKS 服务终端节点将成为 Amazon VPC 中具有私有 IP 地址的弹性网络接口。
这样您无需使用公有 IP 地址,也无需通过 Internet 传输流量,就可以从自己的 Amazon VPC 直接访问 Kubernetes 主节点和 Amazon EKS 服务。
最后,我们还构建了一个开源 CNI 插件,任何人都可以在 AWS 上将它用于 Kubernetes 群集。这样您可以在本地将 Amazon VPC 与 Kubernetes Pod 联网。
通过 Amazon EKS,启动 Kubernetes 群集非常简单,只需在 AWS 管理控制台中单击几次。Amazon EKS 负责其余工作:升级、修补和高可用性。Amazon EKS 现在提供预览版。我们期待收到您的反馈意见。
— AWS Container Services 总经理 Deepak Singh