自建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) |
利用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 CloudFormation
AWS CloudFormation 为您提供了一种通用语言,用于对您的云环境中的 AWS 和第三方应用程序资源进行建模和预配置。
AWS Lambda
通过 AWS Lambda,无需预置或管理服务器即可运行代码。您只需按使用的计算时间付费。
开始使用
各行各业中所有规模的公司都在使用 AWS 对其日常业务进行转型。联系我们的专家,立即踏上您的 AWS 云之旅。