首页 > 其他分享 >解读Karmada多云容器编排技术,加速分布式云原生应用升级

解读Karmada多云容器编排技术,加速分布式云原生应用升级

时间:2024-11-14 11:09:50浏览次数:1  
标签:容器 集群 ADC Karmada 数据 多云 分布式

本文分享自来源:《华为云DTSE》第五期开源专刊,作者:任洪彩 华为云高级软件工程师,Karmada社区Maintainer。

 

管理和协调跨多个云平台的容器化应用是当前企业面临的复杂性挑战之一,Karmada多云容器编排技术使得用户能够像操作单一集群一样轻松管理多集群,简化了多云环境的运维复杂度,加速分布式云原生应用升级。

行业背景

随着云计算技术的飞速发展,企业对于云基础设施的需求日益多样化,多云策略成为了众多企业的首选。多云环境不仅能够提高业务的灵活性和可用性,还能有效降低对单一云服务商的依赖风险。根据最新的调查报告显示,超过87%的企业正在使用多个云厂商的服务,然而,随之而来的是管理和协调跨多个云平台的容器化应用的复杂性挑战。

业界流行的容器编排工具Kubernetes(简称K8s),虽然在单一集群内展现了强大的资源管理和自动化部署能力,但在面对多云场景时,其跨集群的资源调度、统一管理以及数据一致性等问题成为了亟待解决的痛点。

现阶段,云原生多云多集群业务的编排面临着诸多挑战:

  1. 集群繁多的重复劳动:运维工程师需要应对繁琐的集群配置、不同云厂商集群间的管理差异以及碎片化的API访问入口等问题。

  2. 业务过度分散的维护难题:应用在各集群的差异化配置繁琐;业务跨云访问以及集群间的应用同步难以管理。

  3. 集群的边界限制:应用的可用性受限于集群;资源调度、弹性伸缩受限于集群。

  4. 厂商绑定:业务部署的黏性问题,缺少自动化故障迁移;缺少中立的开源多云容器编排项目。

Karmada多云容器编排引擎,简化多云环境管理复杂度

为了解决上述挑战,华为于2021年正式推出了开源项目Karmada,旨在打造一个云原生的多云容器编排平台。Karmada(Kubernetes Armada,舰队之意)继承并超越了社区Federation v1和v2(kubefed)的设计理念,它不是简单地在不同集群间复制资源,而是通过一套全新的API和控制面组件,实现了在保持Kubernetes原有资源定义API不变的前提下,无缝地在多云环境中部署和管理分布式工作负载。

Karmada提供了一个全局的控制面板,使得用户能够像操作单一集群一样管理多云上的Kubernetes集群,简化了多云环境的运维复杂度,引入了高级的跨集群调度策略,根据资源需求、成本、合规性等因素,自动将工作负载优化部署到最适合的云平台或区域。通过分布式数据管理和同步机制,确保多云间的数据和配置一致性,降低了数据管理的复杂度。

实践案例:Karmada在工业智能检测领域的应用

工业智能检测领域亟需标准化智能检测提升效率

在液晶面板生产领域,由于多种因素,产品常出现不良品。为此,关键工艺节点后引入了自动光学检测(AOI)设备,通过光学原理检测常见缺陷。然而,现有 AOI 设备仅识别缺陷有无,需要人工分类和识别缺陷,这一过程耗时且影响生产效率。数之联的客户企业,某面板龙头企业,引入自动缺陷分类系统(ADC)以提高判定准确性并减轻劳动强度,使用深度学习技术自动分类 AOI 输出的缺陷图片,并筛除误判,从而提高生产效率。

 

客户企业率先在一个工厂引入 ADC,后续在其他工厂推广,节省人力资源,提高判定效率。尽管如此,由于工艺复杂和供应商差异,现场建设呈现出割裂和分散管理的趋势,给数据共享和运维带来困难。为解决这些问题,客户企业启动了工业智能检测平台的建设,该平台利用人工智能技术,实现标准化智能检测并提高生产效率和良率。

工业智能检测平台

工业智能检测平台将 ADC 作为核心,扩展至模型训练和检测复判,实现“云”(管理+训练)+“边”(推理)+“端”(业务)的一体化方案,旨在通过标准化平台提高生产质量和数据价值。建设范围包括资源共享中心、现地训练和边侧推理等子平台,将在若干工厂实施。

工业智能检测平台架构图

项目目标是实现现地 ADC 上线、资源共享和云边端标准化,以减轻运维负荷、提升标准。工业智能检测平台旨在通过规范化和标准化客户企业全集团的 ADC 系统,为后续 ADC 建设提供样本和模板,降低成本和周期,提高生产和质检效率以及产品良率。平台包含系统管理员、资源配置员等用户角色,并涉及 ADC 推理、模型训练、数据共享等信息流,以及云端协同功能,确保 ADC 的自动缺陷分类生产过程,并提高模型和缺陷图片的利用率。

结合Karmada多集群管理构建解决方案

一、集群管理:多地域集群统一纳管

不同地域的 K8s 集群注册至中心云系统,中心云系统对多个现地的集群进行管理。

二、应用管理:全局统一部署、监控

通过 Karmada提供的集群统一访问能力,用户在中心云实现可视化大屏等需要聚合成员集群的数据的功能。

1、集群监控

针对在线的集群,中心云系统可对内存、CPU、磁盘、网络流入流出速率、GPU、日志等指标进行监控数据展示,并可切换集群进行数据查看。

资源监控

中心云可以看到和训练云相同的监控,通过 Karmada 聚合层 API 由集群的 Java 程序对 PromQL 封装后提供给前端页面。

2、中心云数据下发

用户在中心云上传的数据,可自由选择下发至指定现地,包括数据集、标注、算子工程、算子镜像以及模型等。

数据集、算子工程、模型,通常是文件,在完成传输后,会保存到本地或NAS等存储中。标注,通常是结构化数据,在完成传输后,会保存到 DB 中。算子镜像,一般导出为 tar 包,在完成传输后,会推送到当前集群的 harbor 中。 中心云除了 Karmada 的控制面以外,也带有自己的业务 K8s 集群,也包括存储,因此可以作为一个中转器。以上均通过 Karmada 的聚合层 API 来调用我们提供的文件上传到 svc,实现了集群和集群之间的调用。

3、跨现地训练

针对某现地训练资源不足的情况下,可通过申请其他现地资源的方式,进行跨现地训练。该功能实现方式为将 A 现地训练所需要的数据集、标注、算子工程、算子镜像等数据发送至 B 现地,通过 B 现地的资源进行训练。再将训练好的模型返回给 A 现地。

原理和中心云数据下发类似,任务所需的数据会直接发送到对应集群,体现了成员集群和成员集群之间的调用关系。

4、可视化大屏

根据中心云注册的现地,统计不同现地的各类指标数据进行大屏展示。在这类大屏中展示实时数据的时候,通过 Karmada 聚合层 API,我们可以方便地直接调用成员集群的 svc,而无需让所有的数据显示都走大数据的离线分析、实时分析,提供更高的时效性。

总结展望

Karmada项目自2021年开源并加入云原生计算基金会(CNCF)成为沙箱项目以来,已经取得了显著的发展与认可。项目于2023年底正式晋升为CNCF的孵化级别项目。这一成就标志着Karmada技术生态获得全球业界的广泛认可,进一步巩固了其在分布式云原生技术领域的领先地位。该项目凭借其创新的多云多集群容器编排能力,已被全球范围内超过30家知名企业所采纳用于构建企业级云原生平台。

 

Karmada的出现,为多云时代的企业提供了一个强大且灵活的容器编排解决方案,它不仅解决了多云管理的痛点,还为企业在云原生旅程中探索更广阔的应用场景提供了坚实的技术支撑。随着云原生技术的不断演进,Karmada有望成为连接和简化多云生态的关键力量,助力企业释放云的全部潜能,加速数字化转型的进程。

 

点击关注,第一时间了解华为云新鲜技术~

标签:容器,集群,ADC,Karmada,数据,多云,分布式
From: https://www.cnblogs.com/huaweiyun/p/18545583

相关文章

  • CICD04 Jenkins容器化CICD实现及分布式构建, 流水线Pipeline ubuntu使用
    2.14.3案例:基于Docker插件实现自由风格任务实现Docker镜像制作不如前面的直接脚本编写灵活2.14.3.2安装插件docker-build-stepjenkins上安装docker-build-step插件#选择jenkins使用的docker服务#左侧系统管理,右侧系统配置,DockerBuilder下DockerURL输入un......
  • 3大主流分布式事务框架详解(图文总结)
    3大主流分布式事务框架详解(图文总结) 1简要介绍随着微服务架构的不断发展,分布式系统逐渐普及到后端领域的每一个角落。在分布式系统中,跨多个服务的数据一致性一直是一个重大挑战,为解决这一挑战,分布式事务应运而生。作者在之前的文章《五种分布式事务解决方案》和《4大主流分......
  • 分布式ID实现方案
    ID:数据的唯一标识。并发流量大采用Mysql分库分表(Sharding-JDBC)分布式ID满足要求:全局唯一生成Id速度快,对本地资源消耗少生成Id服务需高可用(不能出错)id有序递增(提升DataBase写入速度)有具体业务含义(通过id定位问题更加透明)分布式Id场景多,需要独立部署发号器服务解决方案一......
  • 讯维分布式无纸化会议系统指挥中心应用案例
    “人民防空办公室不仅在未来的反侵略战争中担负着战时防空的重任,同时,随着改革开放的不断深入以及社会保障体系的不断完善,又在和平时期担负着抗灾、防灾、救灾的工作。而单位指挥中心是单位体系的中枢,它在战时的防空战争中起着决定性的作用。在未来高技术的局部战争中,建设单位指......
  • 分布式事务~从seata实例来学习分布式事务
    部署dockerrun--name=seata1.4.2\--hostname=d67502e1d2ea\--mac-address=02:42:0a:ff:fe:02\--env=SEATA_IP=192.168.60.136\--env=SEATA_PORT=8091\--volume=/root/seata/seata-server-1.4.2/conf/registry.conf:/......
  • RabbitMQ 在 Linux CentOS 和 Docker 环境下的部署及分布式部署指南
    1.引言RabbitMQ是一种广泛使用的消息代理,实现了高级消息队列协议(AMQP)。它在分布式系统中扮演了至关重要的角色,确保消息的可靠传递、负载均衡和任务分发。本文将深入探讨如何在LinuxCentOS和Docker环境下部署RabbitMQ,并实现分布式部署,帮助你快速上手并优化生产环......
  • SpringBoot+ElasticJob实现分布式任务调度
    目录1相关简介2Zookeeper的Docker安装3Zookeeper的Windows版本安装4Zookeeper图形化客户端prettyZoo5示例代码6添加任务监听器7参考资料(感谢)1相关简介zookeeper:开源分布式应用程序协调服务下载地址:https://archive.apache.org/dist/zookeeper/2Zookeeper......
  • 为什么分布式光伏规模是6MW为界点?
    安科瑞Acrel-Tu1990最近,能源局颁布了一项规定,明确指出6兆瓦(MW)及以上的分布式光伏电站必须实现自发自用,自行消纳电力。多个省份的能源局进一步规定,规模超过6兆瓦的电站需按照集中式管理进行操作。此外,规模大于6兆瓦(含6兆瓦)的电站需要经过省级审批,而小于这一规模的则由市级部门......
  • 7天用Go从零实现分布式缓存GeeCache(学习)(2)
    参考:https://geektutu.com/post/geecache-day2.html//Cache是一个LRU缓存(最近最少使用缓存),它不是并发安全的。typeCachestruct{maxBytesint64//缓存的最大字节数nbytesint64//当前缓......
  • Seata — 分布式事务
    1.分布式事务简介分布式事务是指在分布式系统中,事务涉及到多个数据库和服务,需要跨多个系统节点协调完成事务的提交和回滚,保证系统的一致性。由于涉及多个节点,分布式事务比单一数据库中的事务实现更为复杂。归其原因就是参与事务的多个子业务在不同的微服务,跨越了不同的数据......