自建Kubernetes集群迁移至Amazon EKS:Momenta 快速有效地实现集群的自动扩展与升级

2020

Momenta 定位于打造“自动驾驶大脑”,核心技术是基于深度学习的环境感知、高精度地图和驾驶决策算法,产品包括不同级别的自动驾驶方案,以及衍生出的大数据服务。Momenta的战略是量产自动驾驶(Mpilot)与完全无人驾驶(MSD)两条腿走路,通过数据、数据驱动算法和两者之间的迭代闭环,推动自动驾驶技术落地量产,并最终实现无人驾驶。

Momenta自建集群存在不足:成本高、扩容难、升级难

随着业务发展,计算资源对于Kubernetes的需求明显增加,而自建集群的运维难度和成本也随之增大,无法满足业务快速发展的需求,而 Amazon Elastic Kubernetes Service (Amazon EKS) 作为托管服务既能提高效率、简化运维的优势,同时带来成本的大量节约。
Momenta需要为构建Kubernetes的master控制节点预留3个以上 Amazon Elastic Compute Cloud (Amazon EC2) 实例,即使采用最低配置的实例,成本花费也超出企业负担。然而,随着工作节点数量增加,低配置的实例又会面临性能匹配问题,最终还需要把master节点迁移到高配置的机器上,成本又将继续增加。
在原来的IDC自建模式下,工作节点不能弹性扩容,难以快速响应业务部门需求。同时,还需要Momenta自己解决master节点部署的高可用性和安全性问题,大大加重了运维的负担。而开源Kubernetes集群的定期升级还需要中断业务,不能确保Momenta业务连续运行。
Amazon EKS 作为一项托管服务,允许用户在 AWS 上轻松运行 Kubernetes,无需支持或维护自己的 Kubernetes 控制平台,可有效缓解运维负担。同时,Momenta还使用了大量AWS 云服务,包括计算、存储、大数据、 AI/ML,来支持其数据筛选标注服务、内部车辆监控服务等,因此使用Amazon EKS可以与这些服务完美兼容。

Amazon Elastic Compute Cloud (Amazon EC2)
start a python tutorial
kr_quotemark

利用Amazon EKS,Momenta在2个月内完成了自建Kubernetes集群向AWS云的迁移。Amazon EKS全托管特性、弹性扩容、自动升级能力,减轻了运维负担,减少了计算成本。” 

董维山

Momenta 研发总监 

2个月完成自建Kubernetes集群向AWS云迁移

2020年3月Amazon EKS服务落地中国,Momenta第一时间进行了Amazon EKS 的POC验证,并在2个月的时间内,完成自建Kubernetes集群向AWS云的迁移,并上线使用。
在POC验证初期,Momenta遇到的一些疑问,得到了AWS的专业解答。例如,Amazon EKS的管理机制与自建Kubernetes的差异是什么?AWS 网络服务ALB Ingress Controller、安全服务AWS Identity and Access Management (IAM) 和弹性扩展组ASG/HPA等服务,如何与Kubernetes管理集成?相关的开源软件如何顺利地迁移至Amazon EKS的Kubernetes集群中?
”通过AWS多位容器专家与我们进行面对面培训交流,我们了解到Amazon EKS易于上手,能够全面支持Kubernetes在生产环境下的使用,例如,当每个集群的控制器节点都是独享实例时,master节点就会默认分布到3个可用区。Amazon EKS与CNCF(云原生计算基金会)的Kubernetes完全保持一致,可以无缝地将开源Kubernetes迁移到Amazon EKS,并保留原有的知识体系。此外,AWS还提供了一些与Kubernetes相关的开源工具,包括Eksctl、AWS CloudFormation, 以及AWS CDK,加强了对Kubernetes集群的管理。”Momenta研发总监董维山表示。

Amazon EKS:自动扩容、自动升级,减轻运维负担,减少计算成本

Amazon EKS所使用的工作节点(Amazon EC2资源)的调配机制非常灵活。目前,Momenta设置的机制是首先使用预留实例,当资源紧缺需要更多计算节点时,Amazon EKS就会调用Amazon EC2 Spot 实例,自动实现资源扩展,满足业务需求。全托管的机制保证了Amazon EKS的可靠性,也简化了Momenta的运维工作。Amazon EC2 Spot 实例与预留实例结合使用,可以进一步优化工作负载的性能和成本,为Momenta节省大量的计算成本。
与此同时,Amazon EKS本身具有自动升级功能,消除了Momenta自建Kubernetes升级需要中断业务的问题。通过在Amazon EKS操作界面发起升级需求,Amazon EKS就可以自动检测和替换运行状况不佳的控制层面实例,为它们提供自动版本升级和修补,在不影响Momenta业务连续性的情况下,完成对Kubernetes的升级。
此外,Amazon EKS开源社区也非常活跃。用户可以直接向AWS的产品开发人员提出建议和需求,很大一部分将被直接采纳,加入Amazon EKS新增的功能。社区公开的产品路线图,也便于用户清晰了解Amazon EKS的产品计划和生命周期,为Momenta等企业的长期架构规划提供保障。
“通过使用Amazon EKS,我们目前基础架构支撑团队虽然人力非常有限,但却足以支持生产级别的Kubernetes集群,还可以按需、弹性使用计算资源,并且利用Amazon EC2 Spot 实例进一步降低计算成本。”董维山说。
接下来,Momenta将进一步探索AWS的无服务器架构Kubernetes容器服务:AWS Fargate。该服务可以按照资源大小和使用时长计费,通过原生无服务器架构实现高可靠性、高安全性和弹性扩展,真正实现为价值付费的目标,持续降低计算成本 。


关于Momenta

Momenta 定位于打造“自动驾驶大脑”,核心技术是基于深度学习的环境感知、高精度地图和驾驶决策算法,产品包括不同级别的自动驾驶方案,以及衍生出的大数据服务。

为什么使用AWS

  • 快速构建Kubernetes集群
  • 弹性扩缩容能力、自动化升级
  • 简化Kubernetes运维,优化成本

使用的AWS服务

Amazon EC2

Amazon Elastic Compute Cloud (Amazon EC2) 是一种 Web 服务,可以在云中提供安全并且可调整大小的计算容量。

了解更多》

Amazon EKS

Amazon Elastic Kubernetes Service (Amazon EKS) 是一项完全托管的 Kubernetes 服务。

了解更多》

AWS Cloud​Formation

AWS CloudFormation 为您提供了一种通用语言,用于对您的云环境中的 AWS 和第三方应用程序资源进行建模和预配置。

了解更多》

AWS Lambda

通过 AWS Lambda,无需预置或管理服务器即可运行代码。您只需按使用的计算时间付费。

了解更多》


开始使用

各行各业中所有规模的公司都在使用 AWS 对其日常业务进行转型。联系我们的专家,立即踏上您的 AWS 云之旅。