0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

将微服务从Mesos DCOS迁移到Kubernetes

星星科技指导员 来源:嵌入式计算设计 作者:Maulik N Shah 2022-07-10 10:10 次阅读

对于一些微服务,数据传输和稳定性会导致问题,特别是在用户尝试长时间获取更大数据的情况下。设备能够将数据推送到数据库,但数据加载和显示导致数据丢失或服务失败。由于微服务的 I/O 更高,CPU 和内存的更高使用率启用了负载均衡器,并最终导致更高的计费。

我们决定重新设计编排并找到 Apache Mesos 的替代方案。Docker Swarm 和Kubernetes是领先且高度使用的容器编排工具,用于 DevOps 基础设施管理工具。

在我们探索 Docker Swarm 和 Kubernetes 之前,我们定义了我们如何使用 Mesos。

阿帕奇梅索斯

它提供了以分布式方式运行容器化和非容器化服务的能力。Mesos 采用分布式内核设计,因此 API 编程可以直接针对数据中心进行设计。在我们的案例中,配置为主/从的 MESOS DCOS 是基于数据库请求并进行管理的。在服务失败时,Mesos master 永远不会自动重启服务,这增加了应用程序的停机时间。

Mesos 面临的挑战

现有基础设施经常出现服务故障,导致最终用户无法使用基础设施、数据丢失和更高的 AWS 账单。

现有基础架构和编排

云:AWS

CI/CD:詹金斯

编程语言:PythonJAVA、C、C++等。

源代码:Github

部署策略:自动化+手动

基础设施监控:自动化 + 手动(定期执行验证步骤)

当前的策略和工具

EC2 Auto Scaling 组

根据 CPU 使用率进行缩放

EC2 上的 DCOS 微服务

Slack 和通过电话/电子邮件通知

其他工具/服务:Splunk、Looker、HA Proxy、S3、Graphite、Grafana

挑战

CPU 使用率会根据客户和产品使用情况而波动

弹性伸缩后服务频繁失败

频繁停机

频繁的补丁

最终客户因稳定性和可用性而担心数据丢失

由于多个 EC2 实例导致的高 AWS 账单

码头工人群

Docker swarm 使用 Docker API 和网络概念,因此我们可以轻松配置和使用它。它的架构可以强有力地管理故障。在 Docker swarm 中,新节点可以作为工作节点或主节点加入现有集群。Docker Swarm 不允许集成第三方日志工具。与 Kubernetes 相比,Docker Swarm 在 AWS、Azure 和 Google Cloud 等不同云服务提供商上的轻松集成是不可用的。

Kubernetes

Kubernetes 易于配置且体积轻巧。在服务失败的情况下,Kubernetes 会执行自动缩放并保持服务可用。Kubernetes 用途广泛且应用广泛。主要云服务为 Kubernetes 提供自定义 master 支持。

另请阅读:关于 EKS(弹性 Kubernetes 服务)部署的分步指南

由于 AWS 为 Kubernetes Master 提供了一个平台,我们决定使用 EKS。

Amazon EKS 定价模型要求用户为每个 EKS 集群承担 0.20 美元/小时的额外费用。这让我们思考,但是当我们比较收益时,它不应该像听起来那么糟糕。作为用户,我们在单个集群上设计和部署了多个具有不同命名空间和 VPC 范围的应用程序。

我们为一个集群启动了该流程,迁移了一项服务,并在 Docker Swarm 和 Amazon EKS 上验证了稳定性。其他基础设施已经在 AWS 上,我们发现 Docker Swarm 配置会非常耗时,并且需要付出很多努力来监控和管理。

借助 EKS,我们得到了亚马逊的支持和指导,以设计和部署服务以及如何降低成本,因此我们决定使用 EKS。

从 Mesos 迁移到 Kubernetes

对于 EKS 上的环境创建、映射和部署,我们使用了 CloudFormation (YAML) 模板。

云形成

AWS CloudFormation 提供了一个基于 YAML 的自定义图形界面来创建、管理和修改大量 AWS 资源,并映射它们的依赖关系。由于 CloudFormation 是 AWS 的一项服务,因此任何新服务都可以使用。

诸如 Terraform 之类的选项是开源的,并且支持主要的云平台以将基础设施设置为代码,但我们使用了 CloudFormation,因为我们在 AWS 上拥有一切。

EKS 如何提供帮助

使用 EKS 可以减少 AWS 账单

更少的 EC2 实例

使用 EKS 进行自动缩放

EKS 监控服务和警报服务

​新基建

将 EC2 实例从 15 个中型减少到 3 个大型

移除石墨

使用 EKS 自动缩放

减少 Datadog 和 Pager 任务 警报配置成本和复杂性

基于 Prometheus + Grafana 的 Alert 配置

数据狗

我们为 Datadog 配置了 CloudWatch 的扩展,用于监控 EC2 实例和连接的 AWS 服务。我们在实例上安装了 Datadog 代理,可以在 15 秒内收集内存、CPU、存储、磁盘 I/O、网络等的系统级指标。

为了对 Kubernetes 集群进行额外的警报和监控,我们配置了 Prometheus + Grafana。

Prometheus 帮助捕获和保留 POD、容器、systemd 服务等数据。我们可以使用这些数据来分析应用程序和环境的稳定性和行为。

GRAFANA 使用 Prometheus 存储的数据,并提供统计数据和警报配置的图形表示,以便于评估。

迁移后最佳实践

维持 MTTR(平均响应/解决时间)

列出关键情况并报告

立即行动

事故报告

根本原因分析

定义流程的持续改进

实现战略

手动

定期执行验证步骤

观察到意外行为时进行调试

按照 Runbook 的定义步骤

如果未在规定时间内解决,请致电或发送电子邮件给开发支持团队

记录现有故障后,如果需要,重新启动服务

自动化实用程序

使用 Jenkins + Selenium/Dynatrace 持续执行定义验证工具

增强 Python 脚本的验证步骤覆盖率

Slack 频道的通知

传呼义务

行动

15 分钟内未解决的电子邮件

如果在一小时内未解决,则升级至 4 级

如果没有解决,升级到 5 级

启动并运行环境

最佳实践

观察环境几个小时

创建根本原因分析文档

获得开发团队确定的根本原因分析的批准

从开发团队收集分辨率信息

如果将来观察到相同的 RCA,请立即采取行动以最大程度地减少停机时间

更新运行手册以供将来参考

好处和应用

在我们的案例中,AWS 账单减少了约 40%,因为 EC2 数量从 15 个减少到 3 个

基于扩展配置的自动服务重启有助于提高应用程序的可用性

数据丢失和最终客户升级减少

更高级的监控方式,帮助 DevOps 工程师快速识别根本原因

结论

当我们谈论关于我们案例的结论时,我们发现 EKS 更有帮助,因为我们发现在编排更改后我们的应用程序更加稳定。借助 EKS,我们观察到了服务稳定性、自动扩展和负载平衡——这有助于我们保持产品可用性。同样,Kubernetes 和 Mesos 都提供了将应用程序部署为云上容器的设施。根据不同的应用需求,解决方案可能会有所不同。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10832

    浏览量

    211270
  • API
    API
    +关注

    关注

    2

    文章

    1487

    浏览量

    61845
  • AWS
    AWS
    +关注

    关注

    0

    文章

    427

    浏览量

    24319
收藏 人收藏

    评论

    相关推荐

    INA219迁移到INA232

    电子发烧友网站提供《INA219迁移到INA232.pdf》资料免费下载
    发表于 11-14 14:17 0次下载
    <b class='flag-5'>从</b>INA219<b class='flag-5'>迁移到</b>INA232

    USCI模块迁移到eUSCI模块

    电子发烧友网站提供《USCI模块迁移到eUSCI模块.pdf》资料免费下载
    发表于 10-18 10:39 0次下载
    <b class='flag-5'>从</b>USCI模块<b class='flag-5'>迁移到</b>eUSCI模块

    TMS320VC5509迁移到TMS320VC5509A

    电子发烧友网站提供《TMS320VC5509迁移到TMS320VC5509A.pdf》资料免费下载
    发表于 10-17 10:38 0次下载
    <b class='flag-5'>从</b>TMS320VC5509<b class='flag-5'>迁移到</b>TMS320VC5509A

    TMS320C645X DSPEDMA 2.0版迁移到EDMA 3.0版

    电子发烧友网站提供《TMS320C645X DSPEDMA 2.0版迁移到EDMA 3.0版.pdf》资料免费下载
    发表于 10-16 11:29 0次下载
    TMS320C645X DSP<b class='flag-5'>从</b>EDMA 2.0版<b class='flag-5'>迁移到</b>EDMA 3.0版

    TMS320DM35x迁移到TMS320DM36x器件

    电子发烧友网站提供《TMS320DM35x迁移到TMS320DM36x器件.pdf》资料免费下载
    发表于 10-15 11:50 0次下载
    <b class='flag-5'>从</b>TMS320DM35x<b class='flag-5'>迁移到</b>TMS320DM36x器件

    OMAP3530迁移到AM37x

    电子发烧友网站提供《OMAP3530迁移到AM37x.pdf》资料免费下载
    发表于 10-14 11:39 0次下载
    <b class='flag-5'>从</b>OMAP3530<b class='flag-5'>迁移到</b>AM37x

    TMS320DM6467迁移到TMS320DM6467T

    电子发烧友网站提供《TMS320DM6467迁移到TMS320DM6467T.pdf》资料免费下载
    发表于 10-14 11:30 0次下载
    <b class='flag-5'>从</b>TMS320DM6467<b class='flag-5'>迁移到</b>TMS320DM6467T

    TMS320DM365迁移到TMS320DM368

    电子发烧友网站提供《TMS320DM365迁移到TMS320DM368.pdf》资料免费下载
    发表于 10-14 11:27 0次下载
    <b class='flag-5'>从</b>TMS320DM365<b class='flag-5'>迁移到</b>TMS320DM368

    TMS320DM6446 594MHz迁移到810MHz

    电子发烧友网站提供《TMS320DM6446 594MHz迁移到810MHz.pdf》资料免费下载
    发表于 10-14 11:18 0次下载
    <b class='flag-5'>从</b>TMS320DM6446 594MHz<b class='flag-5'>迁移到</b>810MHz

    TMS320C5515迁移到TMS320C5517

    电子发烧友网站提供《TMS320C5515迁移到TMS320C5517.pdf》资料免费下载
    发表于 10-12 10:40 0次下载
    <b class='flag-5'>从</b>TMS320C5515<b class='flag-5'>迁移到</b>TMS320C5517

    OMAP3530迁移到AM35x

    电子发烧友网站提供《OMAP3530迁移到AM35x.pdf》资料免费下载
    发表于 10-12 09:26 0次下载
    <b class='flag-5'>从</b>OMAP3530<b class='flag-5'>迁移到</b>AM35x

    UCC25630x迁移到UCC25640x

    电子发烧友网站提供《UCC25630x迁移到UCC25640x.pdf》资料免费下载
    发表于 09-25 09:28 0次下载
    <b class='flag-5'>从</b>UCC25630x<b class='flag-5'>迁移到</b>UCC25640x

    IT资源迁移到服务器的关键因素

    随着云计算技术的不断成熟和普及,越来越多的企业选择将他们的IT资源迁移到服务器上。这种转变不仅可以降低成本、提高灵活性,还可以提升安全性和效率。本文深入探讨IT资源
    的头像 发表于 09-18 11:21 300次阅读

    迁移到基于Arm STM32的MSPMO指南

    电子发烧友网站提供《迁移到基于Arm STM32的MSPMO指南.pdf》资料免费下载
    发表于 09-07 11:17 0次下载
    <b class='flag-5'>从</b><b class='flag-5'>迁移到</b>基于Arm STM32的MSPMO指南

    怎么IR600系列路由器DM4.0平台迁移到InConnect平台

    4.0 平台一些优点,并且功能更加强大,在这里我介绍怎么IR900系列路由器DeviceManager 4.0 平台迁移到InConnect平台。在这里我介绍怎么IR600系列
    发表于 07-25 08:13