• [技术干货] 当Serverless遇到Regionless:现状与挑战
    张嘉伟近年来,Serverless服务崛起的趋势是有目共睹的:从Berkeley将Serverless认定为云计算向用户呈现的新默认形态[1],到AWS、Google等头部厂商纷纷推出Serverless产品并成为爆款。这个趋势对于云计算平台是个必然,因为Serverless解放了用户管理和使用复杂云计算资源的双手,犹如第二次工业革命中内燃机汽车的出现解决了马车夫养马的麻烦,也推动高效、稳定的交通工具走进寻常百姓家。如同汽车由内燃机和转向机构等组件构成,Serverless平台可大致分为资源管理和任务编排[2],分别致力于提供高效且灵活的算力以及提供方便的用户程序执行方式。在Serverless如火如荼的同时,Regionless也是不可忽视的一个方向。Regionless实际上是华为云提出的概念,即为屏蔽掉云平台Region的差异,使得云服务的租户能像“用水和用电”一样随时随地使用云服务。Regionless的内涵实际上是丰富的,囊括了多个学术研究方向:可以是geo-distributed cloud,也可以是multi-cloud,还可以是cloud-edge computing、 hybrid cloud等,分别对应不同的能力。恰好,以上都涵盖在华为云分布式云原生服务提供的offerings中。既然Serverless和Regionless都是当前云原生发展的重要方向,也都基于同一个云平台资源底座构建,那么两者的发展必然不会是平行的:Serverless对基础设施进行了标准化,为应用Regionless化减少了管理和适配的成本;反过来,Regionless也是Serverless的重要组成,因其可以避免用户感知Region间的差异。事实上,早在2018年,就有学者关注到Serverless对底层差异的屏蔽以及平台提供商数量的快速增长,用户必然会有将Serverless业务部署至Regionless平台的诉求[3]。在此场景下,用户和平台设计者首当其中考虑到的就是如何充分利用分布在各个区域的计算资源以提升如并发度、时延等性能;同时,使用成本也是用户核心关注点,所以如何充分利用各个厂商的定价差异消减成本,同时也避免与厂商绑定(vendor lock-in)带来潜在的成本问题也需要充分考虑。因此,本文尝试基于分析现有的学术文章,剖析Serverless与Regionless并存时,在性能提升和成本控制两个方向的现状与挑战,以期抛砖引玉。性能提升早在2019年,来自华盛顿大学的研究者[4]已经注意到Serverless工作流中的计算任务会涉及存储在不同区位的数据,并且这些数据在对应区位会存在隐私性等问题,因此需要将任务分布到对应数据所在的云平台Region进行计算。为此,作者设计了跨Region的调度器GlobalFlow,其核心思想是将工作流中的任务根据对Region的依赖关系进行分组,形成子工作流调度到对应Region,并且在子工作流之间设计Connector以便于数据交换。同样考虑到数据分布的问题,即数据可能分布在不同的区域,而且由于数据隐私性、传输开销等问题,并不能方便地集中在一个区域内处理,[5]中的作者设计了FaDO系统用以编排Serverless计算任务和数据。如图1所示,FaDO通过Backend Server记录每个区域存储的数据,这些信息则被提供给Load Balancer用于将用户请求的计算任务匹配并发送到对应的区域。并且在规则允许范围内,Backend Server还会将数据备份在不同的区域间进行复制,以配合计算任务的并发度。图1 FaDO系统执行流程除了数据的分布会促使Serverless必须接受Regionless,[6]的作者还观察到:一个云厂商的每个Region、每个厂商都有不同的并发度限制,并且之间的数据传输时延、存储的数据、每种任务执行的速度等能力均不一致。简单的将应用分发到多云/多Region上并不一定能充分提升并发度和整体完成时间。例如图2左侧所示(每种颜色标记的云上并发度限制为1000,整体应用由f1-f4任务构成,也需要运行1000次),如果f1在蓝色标识的云资源上运行地快,而f4则在橙色上快时,均匀分布则不能利用这个性能差异,而且在橙色云上,f2和f3并不能充分并行(完全并行需要1200并发度),进一步影响整体执行时间。在此情况下,如何合理选择任务所使用的云资源(如图2右侧所示),以有效地提升并发度是[6]所研究的重点。为此,[6]中提出了基于三层数学抽象构建的调度器算法FaaSt。FaaSt能够合理地将各个任务调度和合适的云厂商/Region上,使得整体的任务完成时间最短。经过在AWS和IBM云上4个Region的实验对比,FaaSt调度后的任务完成时间比单云提升2.82倍。图2 Serverless并发度示意图成本控制为了协助用户选择合适的平台以执行Serverless任务,[3]中提出了MPSC框架,其核心思想是通过实时监控Serverless任务在不同平台上执行的性能,进而选择最具性价比的平台。MPSC的架构如图3所示,其中Monitoring Controller为核心组件,用于协调监控指标采集分析和任务调度。Function Executor则负责将任务分发至各个平台执行,并采集对应指标。除此之外,还有三个存储模块分别用于储存用户配置、监控指标、用户定义的调度逻辑。图3 MPSC系统架构在Serverless任务能够合理分发的基础之上,来自CMU和UBC的学者提出了虚拟Serverless提供商(virtual Serverless provider, VSP)[7]的概念。VSP作为第三方的平台,聚合了各个厂商的Offerings,为用户提供统一的使用接口,为用户动态选择最具性价比的Offering。VSP整体架构如图4所示,其中核心组件包括:Scheduler用以根据性能指标和花费计算最合适的云平台;Controller则负责将应用请求映射到Scheduler选择的云平台上;Bridge用于不同云平台之间任务的交互;Monitor用以记录调度到不同平台上任务的执行性能;Pre-Load用于初始化新接入的云平台;而Cache则记录了平台执行情况用于后续分析优化。通过在AWS和Google云平台上的测试,VSP将Serverless任务的吞吐量提升了1.2-4.2倍,同时降低了54%的云资源使用成本。图4 VSP系统架构进一步地,一个面向多云Serverless的开源library在[8]中提出了。此library主要包括两部分内容(如图5所示):1)统一的API和SDK,用于让用户不需要感知底层差异即可将不同人物部署在不同的云平台上,并且为了降低用户的学习门槛,还提供了基于某一家云平台提供商的API和SDK(如AWS)拓展出来的、可以将任务部署在其他云平台的API和SDK;2)分析系统(EAS),用于分析每个任务最适合的云平台,包含用于将任务分发至不同平台的adaptor、各个平台log的收集器Cloud Logging Query、各个云厂商的计费模型Cost Model、接入各个云平台的鉴权组件Authentication、任务执行的记录Local Logging以及性能分析器Analysis。图5 面向多云的Serverless开源library挑战从上述现有工作可以看出,当前学术界对于Regionless和Serverless结合的研究主要面向geo-distributed cloud和multi-cloud这两个场景下的任务编排系统架构和算法。然而这还远远不足以构建高效、易用的Regionless化的Serverless平台。类似于Berkeley将Serverless分成Backend-as-a-Service (BaaS)和Function-as-a-Service (FaaS)两个层级[1],我们也可以将当前所面临的挑战拆分成底层资源供给以及上层应用管理在Regionless场景的Serverless化:• 底层资源上,我们需要考虑:1) 通盘考虑每个区域计算资源池的异构性、资源余量、成本等因素的情况下,提供足够的资源同时又不因为Serverless极强的弹性而造成过多浪费[9];2) 从网络角度,在规避部分地理区位间带宽、时间等限制的同时,提供支持动态创删的低性能损失、免配置的网络;3) 存储上,提供用户无感知的跨Region数据预存取与缓存。• 应用管理层面上看,需要达到如下:%2) 任务编排上,需要对计算、网络、存储联合进行调度以避免其中某项瓶颈对整体应用的影响;%2) 编程框架上,需要在最小甚至没有侵入式修改的前提下,将用户应用构建或迁移至该平台;%2) 从监控运维角度,需要实现非侵入式、高精度地采集Serverless实例的指标,并基于分布在各个区域的监控数据进行智能异常检测、根因分析。以上也将云厂商和学术界共同打造高效且易用的Regionless下Serverless平台,共同面临的挑战。参考文献[1] J. Schleier-Smith, et. al. "What serverless computing is and should become: The next phase of cloud computing," Communications of the ACM, vol. 64, no.5, pp. 76-84, 2021.[2] Li, Zijun, et. al. "The serverless computing survey: A technical primer for design architecture." ACM Computing Surveys (CSUR), vol. 54, no.10s, pp. 1-34, 2022.[3] A. Aske, et. al. "Supporting multi-provider serverless computing on the edge," in Proc. Int. Conf. Parallel Processing Companion, 2018.[4] G. Zheng, et. al. "GlobalFlow: a cross-region orchestration service for serverless computing services," in Proc. IEEE Int. Conf. Cloud Comput. (CLOUD), 2019.[5] C. Smith, et. al. "Fado: Faas functions and data orchestrator for multiple serverless edge-cloud clusters," in Proc. IEEE Int. Conf. Fog and Edge Comput. (ICFEC), 2022.[6] S. Ristov, et. al, "FaaSt: Optimize makespan of serverless workflows in federated commercial FaaS," in Proc. IEEE Int. Conf. Cluster Comput. (CLUSTER), 2022.[7] A. Baarzi, et. al. "On merits and viability of multi-cloud Serverless," in Proc. ACM Symp. Cloud Comput., 2021.[8] H. Zhao, et al. "Supporting Multi-Cloud in Serverless Computing," arXiv preprint arXiv:2209.09367, 2022.[9] A. Mampage, et. al. "A holistic view on resource management in serverless computing environments: Taxonomy and future directions," ACM Computing Surveys (CSUR), vol. 54, no. 11s, pp. 1-36, 2022.添加小助手微信k8s2222,进入云原生交流群
  • [行业前沿] 华为云云原生动态
    华为云海外首发CCI Serverless容器服务,释放数字生产力在MWC23 巴展期间,华为新产品解决方案发布会在2月27日下午成功举行。在发布会上,华为云全球Marketing与销售服务总裁石冀琳表示:我们希望通过“一切皆服务”的战略,为客户、伙伴和开发者提供稳定、可靠、安全、可持续的云服务。在本次发布会上,华为云海外首发CCI Serverless容器服务正式上线。基于serverless容器架构CCI,客户无需创建和管理服务器节点,即可直接运行容器应用,按需获取、智能运维,让客户只需专注应用开发,无需关注底层资源。具备业务领先的弹性能力,助力客户轻松应对超10倍的突发流量浪涌。CCI Serverless容器具备优势如下:• 聚焦应用免运维1. Serverless无服务器容器使用全新体验2. 客户无需管理服务器或集群• 极致计算性能1. 瑶光统一资源池,提供多种X86、AXD、鲲鹏等类型算力资源2. 全面升级资源拓扑管理能力,保障容器极致算力性能• 智能统筹弹性1. 30秒发放1000容器,满足极速弹性要求2. 支持跨云、跨集群、跨IDC对接的灵活弹性,全场景助力客户业务应对峰值流量    Serverless容器构筑极致性能、高效运维、丰富算力等差异化竞争力,打造大规模高性能云原生Serverless容器资源底座。Source : 华为官网新闻报道KubeEdge 社区 v1.13.0 版本发布,稳定性、安全性大幅提升KubeEdge社区v.1.13.0版本发布。作为2023年最新版本,v.1.13.0性能在稳定性、安全性等方面进大幅提升,其中重大更新如下:• 运行性能提升:对CloudCore 内存使用减少 40%,优化List-watch dynamicController处理,增加云端和边缘之间的list-watch同步机制,增加dynamicController watch gc机制。• 安全性能提升:成为CNCF首个达到软件供应链SLSA L3等级的项目;同时删除边缘节点配置文件 edgecore.yaml 中的 token 字段,消除边缘信息泄露的风险• 对Kuberbetes支持升级至v.1.23.15: 将vendered kubernetes版本升级到v1.23.15,用户现在可以在云端和边缘使用新版本的特性。• 基于 DMI 的 Modbus 映射器:提供基于DMI的Modbus Device Mapper,用于接入Modbus协议设备。• EdgeMes​​h:向边缘隧道模块添加了可配置字段 TunnelLimitConfigedge-tunnel模块的隧道流用于管理隧道的数据流状态。用户可以获得稳定、可配置的隧道流,保证用户应用流量转发的可靠性。KubeEdge云原生边缘计算社区于2022年完成多项关键突破,相继发布《KubeEdge单集群10万边缘节点报告》,《云原生边缘计算威胁模型及安全防护技术白皮书》,并于KubeEdge Summit 2022正式开源分布式协同AI基准测试平台Ianvs。目前项目已完成EdgeMesh高可用架构,KubeEdge on openEuler支持,KubeEdge on openHarmony支持,下一代云原生边缘设备管理框架DMI也将带来更全面的的性能支持与更优的用户体验。欢迎大家测试体验。cid:link_1CNCF持续重视软件供应链安全, KubeEdge成为首个达到SLSA L3等级的项目软件供应链安全持续受到高度关注,CNCF 和OSTIF (Open Source Technology Improvement Fund,开放源码技术改进基金)在过去几年中一直合作,为CNCF 的毕业和孵化项目进行安全审计,保障开源生态系统具有更好的安全性。最新的 OSTIF 报告公布了 2022 年下半年至 2023 年初开展的独立安全审计结果。获得审计通过的项目包含KubeEdge、Argo、Istio、Envoy、CloudEvents等12个项目:审计工作通过创建良好的指导性政策和项目成熟度模型,以及可重复的审计执行流程,以确定风险、威胁媒介并实施工具来改善项目的安全状况。提升项包含:在本次公布的社区中,KubeEdge社区早在2022年7月份,通过完成整个KubeEdge项目的第三方安全审计[2] ,发布《云原生边缘计算安全威胁分析和防护白皮书》,并根据安全威胁模型和安全审计的建议,对KubeEdge软件供应链进行持续安全加固,为本次SLSA L3等级的达成做了充分的准备。在2023年1月18日,社区发布v1.13.0版本,该版本达到SLSA[1] L3等级标准(包括二进制和容器镜像构件),KubeEdge 成为CNCF社区首个达到SLSA L3等级的项目。以下表格展示了KubeEdge在Source、Build、Provenance、Common中的达标情况(Y表示KubeEdge已达标,空格表示SLSA在该等级下未要求):RequirementL1L2L3L4SourceVersion controlledYYYVerified historyYYRetained indefinitelyYYTwo-person reviewedYBuildScripted buildYYYYBuild serviceYYYBuild as codeYYEphemeral environmentYYIsolatedYYParameterlessYHermeticYProvenanceAvailableYYYTo-doAuthenticatedYYTo-doService generatedYYTo-doNon-falsifiableYTo-doDependencies completeTo-doCommonSecurityYAccessYSuperusersY为什么达到SLSA L3等级对开源项目至关重要软件供应链完整性攻击(对软件包的未经授权的修改)在过去三年中呈上升趋势。SLSA在KubeEdge项目软件供应链安全中发挥着重要作用,基于sigstore社区提供的能力,从源码到发布产物,对软件供应链端到端的整个流程进行签名和校验,确保KubeEdge软件供应链安全。自v1.13.0版本开始, KubeEdge 可以端到端的从源码构建到发布流程进行安全加固,保障用户获取到的二进制或容器镜像产物不被恶意篡改。基于SLSA安全框架,可以潜在地加强软件构件的完整性。SLSA提供端到端的指导原则,可以作为软件的一组防御措施,并防止对组成软件产品的软件包的篡改或任何类型的未经授权的修改。采用SLSA框架可以保护项目软件免受常见的供应链攻击。参考资料[1]  SLSA官网:https://slsa.dev/[2]   KubeEdge项目第三方安全审计:cid:link_0Karmada v1.5 新增多调度组助力成本优化Karmada 是开放的多云多集群容器编排引擎,旨在帮助用户在多云环境下部署和运维业务应用。在最新发布的1.5版本中,Karmada 提供了多调度组的能力,利用该能力,用户可以实现将业务优先调度到成本更低的集群,或者在主集群故障时,优先迁移业务到指定的备份集群。本版本其他新增特性:• 提供了多调度器支持能力,默认调度器可以与第三方自定义调度器协同工作,提供更强的定制能力。• 集群差异化配置策略(OverridePolicy/ClusterOverridePolicy)将按照隐式的优先级进行应用。• 内置资源解释器支持聚合StatefulSet/CronJob 状态。Karmada v1.5版本API兼容v1.4版本API,v1.4版本的用户仍然可以平滑升级到v1.5版本Volcano 社区 v1.7.0 版本正式发布,提升云原生调度能力,强化AI、大数据场景适用度北京时间2023年1月9日,Volcano社区v1.7.0版本正式发布。Volcano是业界首个云原生批量计算项目,项目于2019年6月在上海的KubeCon大会上正式宣布开源,并于2020年4月成为CNCF官方项目。2022年4月,Volcano正式晋级为CNCF孵化项目。Volcano社区开源以来,受到众多开发者、合作伙伴和用户的认可和支持。截止目前,累计有490+全球开发者向项目贡献了代码。Volcano v1.7.0版本在主流计算框架支持、通用服务调度能力、队列资源可观测性等方面进行了增强,新增特性列表如下:• Pytorch Job插件功能强化• Ray on Volcano• 增强Volcano对Kubernetes通用服务的调度能力• 支持Volcano的多架构镜像• 优化队列状态信息等本次版本发布后,Volcano可以更好的适用AI、大数据场景,为使用者提供更简洁易用的Ray、Pytorch等工作负载的云原生调度能力。Volcano云原生批量计算项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。社区已吸引2.6万+全球开发者,并获得2.8k Star和670+ Fork,参与贡献企业包括华为、AWS、百度、腾讯、京东、小红书等。目前,Volcano在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对Spark、Flink、Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、mxnet、KubeGene、Ray等众多主流计算框架的支持,并构建起完善的上下游生态。ING国际银行基于Volcano开展大数据分析作业,获得Kubernetes更高调度性能在 KubeCon North America 2022, ING荷兰国际集团(International Netherlands Groups)发表了《Efficient Scheduling Of High Performance Batch Computing For Analytics Workloads With Volcano - Krzysztof Adamski & Tinco Boekestijn, ING》主题演讲,重点介绍了云原生批量计算项目Volcano如何在数据管理平台中为大数据分析作业提供高性能调度工作。ING荷兰国际集团(International Netherlands Groups)是一个国际金融服务私营企业,成立于1991年,由荷兰最大的保险公司Nationale-Nederlanden,与荷兰的第三大银行NMB PostBank Group合并而成。ING集团的服务遍及全球40多个国家,核心业务是银行、保险及资产管理等。ING集团的全球职员大约56,000人,顾客5320万人,包括自然人、家庭,企业、政府及其他等,例如基金组织。在银行行业有许多法规和限制,ING布局符合自身产业的DAP平台(Data Analytics Platform),为全球50%的ING员工提供安全的、自助的端到端分析能力,帮助员工在数据平台之上构建并解决业务问题。在本次以Volcano为案例的演讲中,ING 重点指出Volcano对批处理任务调度做了很好的抽象,使其在Kubernetes平台能够获得更高的调度性能,后面ING也会将开发的功能逐步回合社区,比如:DRF Dashboard、在每个节点添加空闲空间、自动队列管理、更多的Prometheus监控指标、Grafana仪表盘更新、kube-state-metrics更新和集群角色限制等。Volcano 2019年由华为云捐献给云原生计算基金会(CNCF),也是 CNCF 首个和唯一的容器批量计算项目,帮助用户将 AI、大数据、HPC等计算密集型的业务从传统的系统快速迁移到云原生平台,加速整个云原生落地的进程。Kurator v0.2.0 发布!助力企业分布式云原生应用升级Kurator是华为云开源的分布式云原生平台,帮助用户构建属于自己的分布式云原生基础设施,助力企业数字化转型。Kurator v0.1 版本通过一键集成 Karmada,Volcano,Istio,Prometheus 等主流开源项目,提供了分布式云原生的统一多集群管理,统一的调度,统一的流量治理以及统一的应用监控能力。在最新发布的 v0.2.0 中,Kurator 新增两大类关键特性,增强了可观测性并新增了集群生命周期管理,具体包括以下重大更新。• 基于Thanos的多集群监控及指标持久化存储• 基于Pixie实时的K8s应用监控• 支持本地数据中心集群生命周期管理• 支持AWS云上自建集群生命周期管理Kurator由此开始提供分布式云原生基础设施的管理。这意味着,从此Kurator可以依托基础设施、Kubernetes集群,更好的管理各种云原生中间件,为用户提供开箱即用的分布式云原生能力。Kurator,一键构建分布式云原Kurator于2022年6月在华为伙伴暨开发者大会上开源,是业界首个开源分布式云原生平台。通过集成业界主流开源技术栈以及良好云原生舰队管理性能,Kurator为用户提供一站式、开箱即用的分布式云原生能力,打造分布式云原生技术底座,助力企业业务跨云跨边、分布式化升级。Istio宣布2023年指导委员会席位,华为占两席2月6日,Istio社区宣布2023年指导委员会(Steering Committee)席位。Istio 指导委员会[1],由 9 个贡献席位(根据企业对项目的贡献按比例分配)和 4 个选举产生的社区席位组成。每年 2 月,社区都会根据年度商定的指标[4],查看哪些公司对 Istio 的贡献最大并进行公布。华为云已连续三年获得Istio委员会席位(Steering Committee成员2名,全球仅8家公司13人);Maintainer 2名,Member 10+名。过去几年,华为云Pull Request 位于全球TOP 3,Contributions TOP 3(1.9w+)。由华为云技术团队撰写并出版的《云原生服务网络Istio:原理、实践、架构与源码解析》一书,是业内最有影响力的服务网络书籍之一。目前,华为云应用服务网格(ASM)也已服务于互联网、汽车、制造、物流、政府等多个行业的近千家客户,满足不同行业客户的业务诉求。华为云将在此过程中积累的丰富经验,转化为代码贡献给Istio社区,极大地推动了Istio技术的成熟和社区的快速发展。同时,华为云还大力投入服务网格的技术布道,通过社区论坛、技术会议、视频直播、专业书籍等各种方式,推动服务网格技术传播和普及。添加小助手微信k8s2222,进入云原生交流群
  • [热门活动] 【云原生专题直播有奖提问】DTSE Tech Talk 技术直播 NO.49:看直播提问题赢华为云定制长袖卫衣、华为云定制按摩枕等好礼!
    中奖结果公示感谢各位小伙伴参与本次活动,本次活动获奖名单如下:请获奖的伙伴在11月27日之前点击此处填写收货地址,如逾期未填写视为弃奖。再次感谢各位小伙伴参与本次活动,欢迎关注华为云DTSE Tech Talk 技术直播更多活动~直播简介【直播主题】Kmesh:架构创新为服务网格带来全新体验【直播时间】2023年11月22日 17:00-18:30【直播专家】吴长冶 华为云云原生DTSE技术布道师、华为云云原生技术专家 Kmesh项目负责人【直播简介】传统服务网格代理架构带来数据面的时延开销,无法满足应用SLA诉求,Kmesh为服务网格开启架构创新全新体验!通过将 L4、L7流量治理能力卸载到内核, Kmesh实现内核级云原生流量治理框架,使得服务转发性能分别提升 50%、60%,底噪开销降低 70%,为用户构建服务网格架构高性能方案!直播链接:cid:link_1活动介绍【互动方式】直播前您可以在本帖留下您疑惑的问题,专家会在直播时为您解答。直播后您可以继续在本帖留言,与专家互动交流。我们会在全部活动结束后对参与互动的用户进行评选。【活动时间】即日起—2023年11月23日【奖励说明】评奖规则:活动1:直播期间在直播间提出与直播内容相关的问题,对专家评选为优质问题的开发者进行奖励。奖品:华为云定制长袖卫衣活动2:在本帖提出与直播内容相关的问题,由专家在所有互动贴中选出最优问题贴的开发者进行奖励。奖品:华为云定制按摩枕更多直播活动直播互动有礼:官网直播间发口令“华为云 DTSE”抽华为云定制钢笔礼盒、填写问卷抽华为云定制鼠标等好礼【注意事项】1、所有参与活动的问题,如发现为复用他人内容或直播间中重复内容,则取消获奖资格。2、为保证您顺利领取活动奖品,请您在活动公示奖项后2个工作日内私信提前填写奖品收货信息,如您没有填写,视为自动放弃奖励。3、活动奖项公示时间截止2023年11月24日,如未反馈邮寄信息视为弃奖。本次活动奖品将于奖项公示后30个工作日内统一发出,请您耐心等待。4、活动期间同类子活动每个ID(同一姓名/电话/收货地址)只能获奖一次,若重复则中奖资格顺延至下一位合格开发者,仅一次顺延。5、如活动奖品出现没有库存的情况,华为云工作人员将会替换等价值的奖品,获奖者不同意此规则视为放弃奖品。6、其他事宜请参考【华为云社区常规活动规则】。
  • [热门活动] 【Kmesh专题直播有奖提问】DTSE Tech Talk 技术直播 NO.49:看直播提问题赢华为云定制保温杯、华为云定制颈枕等好礼!
    ▎直播简介💡【直播主题】Kmesh: 架构创新为服务网格带来全新性能体验🕔【直播时间】2023年11月22日 17:00-18:30👨🏻‍💻【直播专家】吴长冶 华为云云原生DTSE技术布道师、华为云云原生技术专家 Kmesh项目负责人👉【直播简介】传统服务网格代理架构带来数据面的时延开销,无法满足应用SLA诉求,Kmesh为服务网格开启架构创新全新体验!通过将 L4、L7流量治理能力卸载到内核, Kmesh实现内核级云原生流量治理框架,使得服务转发性能分别提升 50%、60%,底噪开销降低 70%,为用户构建服务网格架构高性能方案!🌟【直播精彩看点】Kmesh:流量治理下沉OS,构建sidecarless服务网格高性能:OS原生支持L4~L7的流量编排低底噪:Pod中无需部署代理组件,网格数据面资源开销降低70%平滑兼容:管控面自动对接,与已有数据面协同治理加速全栈可视化:流量治理全栈可视化🔗 直播链接:cid:link_0▎活动介绍🙋🏻‍♂️【互动方式】直播前您可以在本帖留下您疑惑的问题,专家会在直播时为您解答。直播后您可以继续在本帖留言,与专家互动交流。我们会在全部活动结束后对参与互动的用户进行评选。🕔【活动时间】即日起—2023年11月23日📑【奖励说明】🌟 福利1:专家坐堂有奖即日起-11月23日,在指定论坛贴提问,评选优质问题送华为云定制颈枕。🌟 福利2:互动有礼官网直播间发口令“华为云 DTSE”抽华为云定制飞盘、填写问卷抽华为云定制保温杯等好礼。🌟 福利3:有奖提问直播过程中提问,评选优质问题送华为云定制长袖卫衣。🌟 更多福利:加入微信交流群直播期间扫码入群,解锁更多隐藏福利哦~
  • [技术干货] 【云原生 免费课程】从0到1学云原生,云原生开发者养成路径!
    ​63个云原生课程视频,基本上包含了整个云原生学习周期里这些都是你得花心思掌握的。内容比较细,基本上满足实操需求,涉及到容器技术、K8s、监控、运维、存储,以及比较前沿的 istio 等等……适用人群:高校学生、企业中的个人开发者以及互联网从业人员。>>>戳我查看云原生开发者学习路径 在线课程添加小助手微信k8s2222,进入云原生技术交流群 
  • [问题求助] k8s集群性能测试
    k8s集群性能测试-求助k8s节点的极限怎样测试?k8s官方称最大节点5000个,查了之后很多人说最大500节点之后就会出现很多问题,那我想知道的是若我有一个集群,我怎样测试这个集群的极限? 怎样知道它是不是该加节点了?若我想测试一个集群的性能,可以从哪方面入手?有那些工具可以使用?若我想模拟一个超大集群测试,应该怎么做?
  • [问题求助] 如何保证在云原生环境下,应用的升级和扩展不会导致数据丢失或损坏?
    如何保证在云原生环境下,应用的升级和扩展不会导致数据丢失或损坏?
  • [问题求助] 云原生时代如何维护一个庞大、复杂且快速变化的分布式系统?
    云原生时代如何维护一个庞大、复杂且快速变化的分布式系统?
  • [技术干货] 率先支持Kuasar!iSulad Sandbox API 简化调用链,可靠性倍增
    沙箱隔离技术是一种将进程有效隔离到独立环境中运行的技术。随着容器技术的兴起,沙箱隔离技术也在云原生领域中得到了广泛的应用。iSulad率先通过 Sandbox API 支持 Kuasar,提供高效和稳定的沙箱管理能力。然而,由于容器技术的历史原因,沙箱的概念在容器引擎和容器运行时中没有得到足够的支持。OCI 标准[1]未定义沙箱管理,导致容器引擎和容器运行时只能采用容器管理的方式管理沙箱,引发性能和稳定性问题,具体可参见Kuasar 系列文章[2]。事实上,容器领域一直在深入研究和探索引入沙箱管理接口的问题。举例来说,Containerd 社区于 2022 年 4 月将 Sandbox API 相关功能整合到主线[3],这一举措对 Containerd 内部沙箱管理逻辑进行了优化。然而,令人遗憾的是,它依然使用 OCI 标准接口来调用容器运行时以管理沙箱。2023 年 4 月 21 日,华为在 Kubecon+CloudNativeCon Europe 2023 云原生峰会上发布了多沙箱运行时 Kuasar[4],将沙箱管理逻辑引入了容器运行时。至此,Kuasar 成为第一个支持 Sandbox API 的容器运行时。容器引擎使用 Sandbox API 直接管理沙箱成为了可能。iSulad[5]也率先通过 Sandbox API 支持 Kuasar,提供高效和稳定的沙箱管理能力。openEuler 23.09 完成对 iSulad+Kuasar+StratoVirt 的集成,为用户提供了一个极速轻量的安全容器解决方案,具体可参见第二篇 Kuasar 系列文章[6]。Sandbox API 简介service Controller { rpc Create(ControllerCreateRequest) returns (ControllerCreateResponse); rpc Start(ControllerStartRequest) returns (ControllerStartResponse); rpc Platform(ControllerPlatformRequest) returns (ControllerPlatformResponse); rpc Prepare(PrepareRequest) returns (PrepareResponse); rpc Purge(PurgeRequest) returns (PurgeResponse); rpc UpdateResources(UpdateResourcesRequest) returns (UpdateResourcesResponse); rpc Stop(ControllerStopRequest) returns (ControllerStopResponse); rpc Wait(ControllerWaitRequest) returns (ControllerWaitResponse); rpc Status(ControllerStatusRequest) returns (ControllerStatusResponse); rpc Shutdown(ControllerShutdownRequest) returns (ControllerShutdownResponse); }Sandbox API 的引入解决了容器引擎和容器运行时之间由来已久的痛点问题[2]:引入 Sandbox 语义,增强了云原生架构上的连贯性削减 shim 进程的冗余,减小资源开销,加快启动速度缩短调用链,可靠性倍增消除 Pause 容器冗余统一沙箱接口使容器运行时支持多沙箱生命周期与管理 Sandbox API[7] 定义了容器引擎如何与容器运行时交互,其中 Controller Service 定义了沙箱的生命周期管理接口,包括创建 (Create) 、启动 (Start) 、停止 (Stop) 、等待退出 (Wait) 、状态查询 (Status) 、销毁 (Shutdown) 、平台信息查询 (Platform) 等。通过 Sandbox API,容器引擎能够直接对沙箱进行管理,无需通过 OCI 标准接口间接管理沙箱,提高了容器引擎的性能和稳定性。资源管理 Sandbox API 还定义了沙箱的资源管理接口,包括资源准备 (Prepare) 、资源清理 (Purge) 、资源更新 (UpdateResources) 等。容器引擎可以通过这些接口管理容器资源,例如在创建容器前准备资源,运行过程中更新资源,容器退出后清理资源。iSulad 新架构图1. iSulad 架构对比图在 Kuasar 发布以后,iSulad 第一时间采用了新的架构以支持 Sandbox API ,使得它能够通过 Kuasar 来直接管理沙箱。为保持已有版本的兼容性与稳定性,iSulad 只对 CRI V1 版本进行了重构升级,支持用户使用 Sandbox API 管理沙箱。CRI V1alpha 版本继续沿用 OCI 标准来处理沙箱管理请求。沙箱与容器的解耦 在新的架构中,iSulad 引入了 Sandbox 的语义,新增核心模块 Sandbox ,使其成为容器引擎的一等公民,实现了容器管理与沙箱管理的解耦。从云原生整体架构的角度看,容器编排组件、容器引擎和容器运行时之间的沙箱管理变得更加流畅和高效,形成了一个完整的沙箱管理链路。以 iSulad+Kuasar+StratoVirt 极速轻量的安全容器解决方案为例,iSulad 在北向接收来自 Kubernetes 的 CRI 请求,并创建 Sandbox 对象来处理 PodSandbox 相关调用,同时使用 Executor 模块来处理 CRI 的 Container 请求。在南向,使用 Controller 模块通过 Sandbox API 调用 Kuasar 的 Sandboxer 进程来管理沙箱,同时使用 Runtime 中的 Shim V2 模块来调用 Kuasar 的 Task 进程,实现了对 StratoVirt 虚拟机中容器的管理。沙箱控制器 图2. 沙箱控制器类图Sandbox API 的实现使 iSulad 能够直接通过 Controller 来管理沙箱,因此 Kuasar 容器运行时也无需创建 Pause 容器以兼容 OCI 标准,避免了 Pause 容器的冗余。在新架构中,Controller 模块的设计充分考虑了对原有沙箱管理功能的兼容性,即支持用户通过Sandbox 和 Controller 模块创建普通容器(Pause 容器)作为沙箱。如上图所示,Controller 模块对 Sandbox 提供了统一 Controller 接口,以及两种不同的实现:Sandboxer Controller 和 Shim Controller 。Sandboxer Controller 是对 Sandbox API 的封装,将用户对沙箱的管理请求通过 gRPC 接口转发给 Kuasar 的 Sandboxer 进程,从而使 Sandboxer 执行底层的沙箱管理逻辑。Shim Controller 兼容原有的基于容器管理的接口,将对 Sandbox 的管理请求转发给 Executor 模块,以便创建和管理基于 Pause 容器的沙箱。Shim Controller 的实现使用户能够在新的架构下继续使用 OCI 标准接口来管理沙箱,以兼容原有已部署的业务,确保功能的连续性。Sandbox 和 Controller 的详细设计可以参见 iSulad 社区的设计文档[8]。简化容器调用链 图3. 容器启动流程图在支持了 Sandbox API 以后,iSulad 的容器管理流程也发生了一些变化。上图以 iSulad+Kuasar+StratoVirt 解决方案为例,展示了 iSulad 从启动沙箱到启动容器的简化流程。在图中,Kuasar Task 充当虚拟机中的 init 进程,同时也是虚拟机沙箱内容器的管理进程。它向 iSulad 提供容器管理接口 Task API ,当前解决方案中的 Task API 接口的实现与 Shim V2 类似但又不完全相同。根据 Shim V2 规范,容器引擎会调用一个 Shim V2 的二进制,创建 Shim 进程并返回 Shim 地址,用于管理沙箱、容器和资源。然而,通过调用 Sandbox API,iSulad 不再需要通过 Shim 进程来管理沙箱。相反,Sandbox API 的 Start 接口会在启动沙箱后返回一个 Task 地址,使 iSulad 能够与虚拟机中的 Kuasar Task 进程直接通信,以管理容器的生命周期。这种设计消除 Shim 进程以减少了管理面的内存开销并缩短调用链,从而提高了整个解决方案的性能和稳定性。总结 Sandbox API 是 iSulad、Kuasar 和 StratoVirt 这三个组件构成的极速轻量的安全容器解决方案的核心纽带。通过 Sandbox API,容器引擎能够直接对沙箱进行管理,无需通过 OCI 标准接口间接管理沙箱,从而显著提高了容器引擎的性能和稳定性。Sandbox API 的引入,也为容器引擎和容器运行时之间的沙箱管理提供了一个标准化的接口,为容器领域的发展提供了新的可能性。当前 Sandbox API 的实现已经合入了 iSulad 社区的主线,用户可以通过 openEuler 23.09 体验这一全栈自研的极速轻量安全容器解决方案,具体可参见 Kuasar 系列文章[6]。openEuler 社区一直秉承开放、协作、共赢的理念,欢迎更多的开发者参与到 iSulad、Kuasar 和 StratoVirt 的建设中来,共同推动容器领域的繁荣发展。参考[1] OCI Runtime Spec: cid:link_3[2] iSulad+Kuasar:管理面资源消耗锐减 99% 的新一代统一容器运行时解决方案 :cid:link_5[3] Sandbox API : cid:link_4[4] 多沙箱容器运行时 Kuasar 技术揭晓!100% 启动速度提升,99% 内存开销优化 :cid:link_6[5] iSulad: cid:link_9[6] openEuler 23.09 一键部署基于 Kuasar 的极速轻量安全容器:cid:link_7[7] sandbox.proto: cid:link_1[8] iSulad Sandbox 设计文档:cid:link_2本文转载自openEuler,原文链接Kuasar社区技术交流地址Kuasar官网:https://kuasar.io项目地址:cid:link_8Twitter: https://twitter.com/Kuasar_io添加社区小助手回复“Kuasar”进入技术交流群
  • [技术干货] Kurator v0.5.0: 打造统一的多集群备份与存储体验
    Kurator 是由华为云推出的开源分布式云原生套件。面向分布式云原生场景,Kurator 旨在为用户提供一站式的解决方案,帮助用户快速构建自己的分布式云原生平台。在最新发布的 v0.5.0 版本中,Kurator 强化了其在多集群环境中的应用备份与恢复,以及存储管理的功能,以满足用户对于复杂部署的需求。本次更新主要包括以下两项新特性:统一集群备份恢复与迁移:Kurator 现在支持一键定制化的备份与恢复多个集群中的应用和资源,并通过统一视图实时监控各集群的进度;同时,还支持跨集群资源的一键迁移功能。统一分布式存储:Kurator 实现了一致性的分布式存储解决方案,其一站式部署让用户在多集群环境下轻松实现块存储、文件存储和对象存储的应用。 统一集群备份恢复与迁移在多云和分布式环境的持续演变中,数据的安全性与可恢复性已经成为用户高度关注的问题。对于企业来说,数据丢失往往是一个难以承受的打击,可能导致严重的业务中断和信誉损失。在以 Kubernetes 为行业标准的环境中,伴随着服务数量和集群规模的增长,数据管理的复杂度也随之增加,这使得实施高效而灵活的备份策略变得尤为重要。面对这种需求的不断扩大和挑战的增加,传统的备份工具往往在多环境下展现出局限性,难以提供一个无缝的统一解决方案。因此,Kurator 的统一备份方案应运而生,旨在提供这一领域的备份解决方案。基于 Velero (https://velero.io/) ,Kurator 为用户提供了一键式的操作体验,可以自定义备份并恢复横跨多个集群的应用与资源。通过 Kurator 提供的统一视图功能,用户能够实时监控各个集群备份的状态和进度。其覆盖范围涵盖了从 Pod、Deployment、Service 等 Kubernetes 原生资源,到 PersistentVolumes(PVs)等持久化存储的备份和恢复,以满足现代企业多元化的数据保护需求。统一备份Kurator 在备份解决方案上提供了多样化的选择,以适应不同场景下的数据保护需求。其灵活性确保了不同业务场景下都能找到合适的备份策略。即时备份: 面对数据频繁变动的情形,“即时备份”能够迅速地提供保护,确保关键数据在关键时间点的完整性得以保持。定期备份:对于那些不太频繁变动,但同样需要确保持久性的数据,“定期备份”可以根据预设的时间周期性的自动执行备份,以满足合规性要求和保障数据安全。此外,Kurator 还提供了一系列高度定制化的备份选项。例如,“特定集群备份”允许运维团队基于策略或特定需求有选择性地备份特定集群。“资源过滤”功能则提供了细粒度的控制,使管理员能够根据资源的名称、命名空间或标签等属性来精确定义备份的范围。这些备份策略的多样性和自动化能力为用户在不断变化的业务需求中,提供了稳定和可靠的数据保护。接下来是一个统一备份的实际操作示例:apiVersion: backup.kurator.dev/v1alpha1 kind: Backup metadata:   ...   name: select-labels   namespace: default spec:   destination:     fleet: quickstart   policy:     resourceFilter:       labelSelector:         matchLabels:           app: busybox     ttl: 720h status:   backupDetails:   - backupNameInCluster: kurator-member1-backup-default-select-labels     backupStatusInCluster:       completionTimestamp: "2023-10-28T03:37:13Z"       expiration: "2023-11-27T03:37:07Z"       formatVersion: 1.1.0       phase: Completed       progress:         itemsBackedUp: 1         totalItems: 1       startTimestamp: "2023-10-28T03:37:07Z"       version: 1     clusterKind: AttachedCluster     clusterName: kurator-member1   - backupNameInCluster: kurator-member2-backup-default-select-labels     backupStatusInCluster:       completionTimestamp: "2023-10-28T03:37:13Z"       expiration: "2023-11-27T03:37:07Z"       formatVersion: 1.1.0       phase: Completed       progress: {}       startTimestamp: "2023-10-28T03:37:07Z"       version: 1     clusterKind: AttachedCluster     clusterName: kurator-member2   ...观察 spec 配置,可以看到备份的目标是位于 Fleet 中各集群内所有标有 app:busybox 标签的资源。通过在 spec 中配置策略的方式,可以确保相关的资源得到备份。在 status 中,可以实时追踪到备份任务在每个集群,如 kurator-member1 和 kurator-member2,的执行状况,保持了操作的透明度。🔗 更多的示例和细节,请参考: cid:link_5统一恢复基于统一备份产生的备份数据,Kurator 通过统一恢复功能支持跨集群的应用和资源恢复。针对即时备份恢复:依据“即时备份”创建的备份数据,可以快速恢复至指定关键时刻的状态。针对定期备份恢复: 针对“定期备份”,Kurator 支持将备份数据恢复到最近一次成功执行备份的时间点。类似备份功能,Kurator 在恢复方面也提供了多样化和定制化的选项。例如,“特定集群恢复”使得用户能够只将数据恢复到指定集群,而不必覆盖所有备份中包含的集群。“资源过滤”功能则允许用户对备份数据进行进一步筛选,只选择性地恢复需要的数据项。用户可以根据备份名称、命名空间或标签等属性来定义恢复的范围,这不仅提升了恢复过程的灵活性,也确保了高度的精确性。参阅以下操作示例,了解如何使用 Kurator 进行统一恢复:apiVersion: backup.kurator.dev/v1alpha1 kind: Restore metadata:   ...   name: minimal   namespace: default spec:   backupName: select-labels status:   restoreDetails:   - clusterKind: AttachedCluster     clusterName: kurator-member1     restoreNameInCluster: kurator-member1-restore-default-minimal     restoreStatusInCluster:       completionTimestamp: "2023-10-28T09:24:07Z"       phase: Completed       progress:         itemsRestored: 2         totalItems: 2       startTimestamp: "2023-10-28T09:24:05Z"   - clusterKind: AttachedCluster     clusterName: kurator-member2     restoreNameInCluster: kurator-member2-restore-default-minimal     restoreStatusInCluster:       completionTimestamp: "2023-10-28T09:24:07Z"       phase: Completed       progress:         itemsRestored: 2         totalItems: 2       startTimestamp: "2023-10-28T09:24:05Z"   ...通过检查恢复任务的 spec 配置,我们可以确定本次恢复操作是针对前文提到的、标记为 select-labels 的备份数据。这里使用了最低配置,不进行恢复的筛选,直接根据备份的配置进行恢复。在 status 中,同样可以实时追踪到恢复任务在每个集群的执行状况。🔗 更多的示例和细节,请参考: cid:link_3统一迁移统一迁移旨在简化将应用程序及其资源从一个集群迁移到其他多个集群的过程。用户需要定义一种 migrate 类型的资源配置,并指定源集群、目标集群及相关策略。此外,类似于 Kurator 的统一备份和恢复功能,用户同样可以进行丰富的定制化配置。配置完成之后,Kurator 相应的控制器便会自动启动迁移任务。这一系列任务包括将资源从源集群上传到对象存储,以及最终迁移到指定的目标集群。具体的迁移过程可参考以下示意图:Kurator 统一迁移流程图相较于使用 Velero,Kurator 提供了一个更为集成和清晰的迁移流程描述。所有必要的配置细节都集中在单一的 migrate 对象中,从而减少了随着目标集群数量增加而产生的配置负担。同时,Kurator自动管理从创建备份到完成迁移的全过程,简化了操作流程,降低了手动操作错误的风险。此外,用户还可以通过这一个对象来实时监控多个集群中的迁移进度,随时了解迁移的最新状态,确保整个流程按预期执行。接下来是一个统一迁移的实际操作示例:apiVersion: backup.kurator.dev/v1alpha1 kind: Migrate metadata:   ...   name: select-labels   namespace: default spec:   policy:     resourceFilter:       labelSelector:         matchLabels:           app: busybox   sourceCluster:     clusters:     - kind: AttachedCluster       name: kurator-member1     fleet: quickstart   targetCluster:     clusters:     - kind: AttachedCluster       name: kurator-member2     fleet: quickstart status:   conditions:   - lastTransitionTime: "2023-10-28T15:55:23Z"     status: "True"     type: sourceReady   phase: Completed   sourceClusterStatus:     backupNameInCluster: kurator-member1-migrate-default-select-labels     backupStatusInCluster:       completionTimestamp: "2023-10-28T15:55:18Z"       expiration: "2023-11-27T15:55:13Z"       formatVersion: 1.1.0       phase: Completed       progress: {}       startTimestamp: "2023-10-28T15:55:13Z"       version: 1     clusterKind: AttachedCluster     clusterName: kurator-member1   targetClusterStatus:   - clusterKind: AttachedCluster     clusterName: kurator-member2     restoreNameInCluster: kurator-member2-migrate-default-select-labels     restoreStatusInCluster:       completionTimestamp: "2023-10-28T15:56:00Z"       phase: Completed       startTimestamp: "2023-10-28T15:55:58Z"   ...在 spec 配置中,源集群设置为 kurator-member1,目标集群为 kurator-member2,迁移过程仅针对包含标签 app:busybox 的资源。在 status 中,迁移阶段 Phase 显示为 Completed,表明迁移操作已完成。sourceClusterStatus 和 targetClusterStatus 分别提供源集群资源的备份细节和目标集群资源的恢复情况。🔗 更多的细节,请参考: cid:link_4统一分布式存储分布式存储作为现代云原生架构中不可或缺的一部分,提供了数据的可扩展性和可靠性。然而,在不同集群间实现一个一致的分布式存储解决方案,往往涉及到复杂的配置和管理工作。Kurator 致力于简化分布式存储的部署与管理。基于领先的开源项目 Rook(cid:link_9),Kurator 支持在多集群环境中轻松自动化管理分布式存储。这包括块存储、文件系统存储和对象存储等多种存储类型,以适应各种应用场景的需求。利用 Fleet 插件,Kurator 提供了一种一键跨集群部署分布式存储的解决方案,既简化了配置步骤也显著降低了配置错误的可能性。架构如下图所示:Kurator统一分布式存储架构图接下来是一个通过 Fleet 插件部署多集群分布式存储的例子:apiVersion: fleet.kurator.dev/v1alpha1 kind: Fleet metadata:   name: quickstart   namespace: default spec:   clusters:     - name: kurator-member1       kind: AttachedCluster     - name: kurator-member2       kind: AttachedCluster   plugin:     distributedStorage:       storage:         dataDirHostPath: /var/lib/rook         monitor:           count: 3           labels:             role: MonitorNodeLabel         manager:           count: 2           labels:             role: ManagerNodeLabel在 spec 中,clusters 指明了存储将部署在哪些集群上。在 status 中,plugin 配置下的 distributedStorage 标识此为一个分布式存储插件的安装。此外,dataDirHostPath 定义了存储的路径,而 monitor 和 manager 配置项则指定了 Ceph 组件的参数。🔗 更多的示例和细节,请参考: cid:link_1参考链接统一备份恢复迁移特性介绍: cid:link_6Fleet备份插件安装: cid:link_2统一备份操作指南: cid:link_5统一恢复操作指南: cid:link_3统一迁移操作指南: cid:link_4统一分布式存储操作指南: cid:link_1附:Kurator社区交流地址GitHub地址:cid:link_7Kurator主页:cid:link_8Slack地址: cid:link_0添加社区小助手k8s2222回复Kurator进入技术交流群
  • [公告] 从心打造CCE集群升级体验,助力集群高效运维管理
    在云原生时代浪潮的推动下,Kubernetes的发展日新月异,更新的集群版本可以带来更新的功能,助力用户打造更强大的云原生应用环境。然而,一直以来,如何让用户积极地升级集群版本,是业界公认的一个难题。“我们想用K8s推出的新能力,也想保持整体集群的最新状态。但是我们那么多重要的应用跑在容器上,如何确保我的业务在集群升级过程不受任何影响呢?一旦出现问题,能快速修复吗?”,“我的集群版本比较老,想要升级到最新版本,升级过程可能会很长,担心可能对上层业务会有影响,且影响时长不可控”——这是CCE集群升级团队与用户交流过程中最常听到的几个问题。为此,CCE集群升级团队深入分析并总结了集群升级的痛点问题,主要有以下三个方面:在业务影响方面,传统升级中的替换升级或迁移升级均会导致业务Pod重建,从而影响到业务。在升级稳定性和效率方面,Kubernetes集群系统复杂,影响升级稳定性因素众多;集群版本跨度较大时需要执行多次升级操作,升级时间较久,尤其在大规模集群升级场景,用户感知更为明显。在交互体验方面,用户对升级流程缺乏全局掌控,尤其是升级流程中步骤较多,用户理解成本高。图1 集群升级痛点如何无损、快速、丝滑地升级集群是业界共同的难题。基于上述几个痛点,CCE产品团队从“过程业务无感”、“稳定高效升级”、“丝滑交互体验”等方面入手,打造焕然一新的集群升级体验。过程业务无感传统升级方式主要有节点替换升级和集群迁移升级,两种方式均会导致业务Pod重建,进而影响用户业务。华为云率先推出原地升级能力,只需更新CCE组件版本,节点无需任何变动,对集群中运行的Pod业务无任何影响,从而实现无损升级。同时,原地升级在速度上相比传统升级有大幅提升。图2 传统升级和原地升级对比同时,用户无需关注集群与插件版本的依赖关系,一键式升级将为您自动进行升级适配,省心省力。 此外,如果在升级过程中出现不可预期的情况,可以基于备份为用户实现快速恢复,使用户更容易掌控集群升级。稳定高效升级在升级稳定性提升方面,我们基于华为云上万次的升级经验沉淀,为用户提供了全方位的升级前检查项,检查项涵盖集群、节点、插件和应用、关键组件状态和配置、资源使用等方面,极大程度上为用户规避升级风险,实现稳定升级。同时,备份是业务连续性的重要保证,业界通用的Etcd备份方案存在无法备份集群组件和配置的问题,我们通过采用硬盘快照备份方案不仅为用户提供了完整的集群数据备份能力,且平均备份速度提升近10倍。在升级效率方面,一方面由于Kubernetes社区只兼容相邻小版本,当版本跨度较大时,需要通过多次升级至最新版。我们为用户提供跨版本升级能力,最多支持跨4个大版本进行升级,如v1.23升级至v1.27,有效缩短用户升级路径,节约升级成本;另一方面,升级时间随着在集群规模正增长,我们在保证集群升级安全的前提下,最多支持100节点并发升级,让用户在更短的时间内完成集群节点升级,提高升级效率。图3 简化集群升级路径图4 集群节点并发升级丝滑交互体验在升级引导方面,我们通过引导页面,给用户清晰直观呈现待升级集群的提示消息,让用户不会错过重要的升级通知。图5 集群管理页面集群升级通知为了降低用户理解成本,我们设计了升级小动画为用户阐述原地升级的概念和原理,帮助用户生动直观地了解集群升级流程和注意事项。图6 集群升级动画同时,我们推出了升级路径推荐功能,自动选择最佳的升级路径,并根据升级路径展示本次升级带来的特性更新和优化增强等。图7 升级路径在升级流程中,我们通过可视化的手段为用户详细呈现了升级的进度和异常情况,升级过程一目了然,使用户能掌控升级进度,降低焦虑。图8 升级进度可视化在升级检查异常时,我们基于不同资源汇聚了检查项信息,帮助用户快速查看异常项并提供修复建议,引导用户快速处理问题。图9 升级异常诊断分析在升级完成后,我们会帮助用户进行升级后自动验证,确保升级后的集群正常运行,节省用户时间和精力。图10 自动健康诊断未来愿景欢迎您使用CCE集群升级功能,我们会持续在“过程业务无感”、“稳定高效升级”、“丝滑交互体验”等方面进行持续优化,让集群升级过程更简单、高效和可靠。期待您宝贵的使用意见。服务体验请访问cid:link_4相关链接cid:link_3cid:link_5云容器引擎 CCE
  • [技术干货] KubeEdge-Ianvs v0.2 发布:终身学习支持非结构化场景
    在边缘计算的浪潮中,AI是边缘云乃至分布式云中最重要的应用。随着边缘设备的广泛使用和性能提升,将人工智能相关的部分任务部署到边缘设备已经成为必然趋势。KubeEdge-Ianvs 子项目,作为业界首个分布式协同AI基准测试平台,基于 KubeEdge-Sedna 为算法及服务开发者提供全场景可扩展的分布式协同AI基准测试,以研发、衡量和优化分布式协同AI系统。然而在边缘设备中部署静态的AI模型往往不足以应对复杂多变的真实世界环境,因此终身学习能力对于边缘AI模型来说变得越来越重要。为了方便边缘AI算法研究者开发及测试终身学习算法在真实世界环境中的效果,KubeEdge-Ianvs 在新版本的更新中发布了支持终身学习范式的相关算法的研发与测试功能。本篇文章为大家阐释相关背景和Ianvs终身学习架构,并以 Ianvs 云机器人终身学习测试为例对 Ianvs 终身学习的特性进行介绍。欢迎关注 Ianvs 项目,持续获得第一手独家公开数据集与完善基准测试配套。开源项目GitHub地址:cid:link_4  一、背景  ▍1.1 终身学习能力对边缘模型越来越重要边缘设备所处的环境通常是不稳定的,环境变化会导致数据分布的大幅变化,即数据漂移。数据漂移会显著降低模型准确性。为了解决数据漂移问题,边缘设备需要具备动态更新模型的能力,以适应环境变化。下图展示了一个典型的终身学习算法流程框架。在该框架中,终身学习任务被定义为:已处理 N 个任务,将陆续处理 M 个任务。如何维护知识库并利用其中的模型处理这些任务是关键。终身学习的流程分为四步,首先根据之前已处理的 N 个任务初始化云端的知识库中的已知任务处理模型;然后在遇到新的任务时,从云端知识库中选取合适的模型部署到边缘端处理任务,如果新任务是已知的任务则更新原来的模型,如果遇到了未知任务则重新训练新的模型用于处理该任务;在边缘端处理好该任务后,对云端知识库进行更新;最后遇到新任务时重复前两步操作。通过以上流程可以确保边缘部署的模型具备终身学习的能力,从而可以应对数据漂移等问题带来的影响。▍1.2 业界缺少合适的终身学习测试工具目前终身学习算法相关测试工具发展较慢,目前比较成熟的测试工具只有 ContinualAI 推出的 Avalanche。Avalanche 支持的特性如下:Avalanche 支持的特性非常丰富,但是对于终身学习算法开发者来说 Avalanche 还存在一些局限性:未能覆盖终身学习全生命周期算法:支持的场景主要局限于增量学习等场景,而终身学习中任务定义、分配以及未知任务识别等流程无法体现在该 benchmark中。缺乏配套真实世界数据集:配套的数据集主要包括 Split-MNIST、Cifar10 等学术界常用的玩具测试集,缺乏适用的真实世界数据集及配套算法。研发算法难以落地:Avalanche更多面向终身学习算法的测试实验,并没有考虑未来将算法落地部署的需求。因此目前业界亟需一个更好的终身学习测试 benchmarking 工具,Ianvs 发布的非结构化终身学习新特性可以很好的解决上述问题。  二、lanvs 终身学习架构  ▍2.1 Ianvs 终身学习优势终身学习近年来得到了越来越多的关注,越来越多的边缘智能从业者认识到了终身学习的重要性。但是终身学习相比其他 AI 算法来说有着更高的研究门槛,经过我们的调研发现终身学习研发存在模型训练流程复杂、算法效果难以衡量和算法落地应用困难三大挑战。第一个挑战是终身学习模型训练流程较为复杂,比如对于一个刚入门终身学习的同学来说,可能对终身学习算法流程中的未知任务识别模块比较感兴趣,但是要想完整实现终身学习还需要填补任务定义、任务分配等模块,而这对于刚入门的同学不太友好,想复现别人的工作还需要去额外完成其他终身学习模块。针对这一挑战,KubeEdge-Ianvs 中对终身学习全生命周期的各个模块都进行了设计,包括并不限于任务定义、任务分配、未知任务识别和未知任务处理等多个终身学习核心算法模块,各个模块之间是解耦合的,用户可以只研究自己感兴趣的模块,其他模块采用默认配置即可跑通终身学习实验。第二个挑战是终身学习算法效果衡量困难,不同论文中的终身学习算法由于其测试流程不一样难以比较其工作的优劣。同时大部分论文的工作都是在 MNIST、CIFAR10 这些非真实数据集上进行的实验,由于缺乏在真实世界数据集上的测试,算法在现实世界中的实际应用效果往往要大打折扣。针对这一挑战,KubeEdge-Ianvs 中对终身学习的测试流程进行了统一,提供 BWT、FWT 等公认的终身学习系统指标,方便衡量算法效果。同时 KubeEdge-Ianvs 开源了 Cloud-Robotics 等真实世界终身学习数据集,并配套了对应的运行样例,用户可以直接开箱使用该真实世界数据集测试自己提出的算法的效果。第三个挑战是终身学习算法落地较为困难,算法研发与实际部署之间存在一定鸿沟。用户训练好的模型需要进一步封装才能实际在生产环境上使用。针对这一挑战,KubeEdge-Ianvs 在开发时就考虑到了和其姊妹项目 KubeEdge-Sedna 开源服务平台是配套兼容关系,因此在 KubeEdge-Ianvs上研发的终身学习算法可以直接迁移到 KubeEdge-Sedna平台上实现落地部署,解决了从研发到落地最后一公里的问题。总而言之,Ianvs 终身学习优势包括:覆盖终身学习全生命周期,包括任务定义、任务分配、未知任务识别和未知任务处理等多个模块,各个模块是解耦合的;统一化的测试流程,系统内置权威的终身学习测试指标,并且支持测试结果的可视化;并提供真实世界数据集用于终身学习测试,能更好测试终身学习算法在真实环境的效果;和 KubeEdge-Sedna 终身学习相兼容,研发算法可以快捷迁移到 Sedna 上实现落地部署。▍ 2.2 Ianvs 终身学习新特性Ianvs 在去年发布的 0.1.0 版本中已具备支持单任务学习范式和增量学习范式的算法研发与测试,在新版的 Ianvs 中增加了支持对终身学习范式的相关算法的研发与测试的功能,同时也为终身学习算法测试提供了新的开源数据集。主要新特性如下:特性一:覆盖终身学习全生命周期Ianvs 终身学习具体架构如下图所示,主要包括任务定义、任务分配、未知任务识别和未知任务处理等模块,覆盖终身学习全生命周期。对于已处理任务,Ianvs 通过任务定义模块,将已知任务抽象成若干个模型存储进云端知识库中。在遇到新任务时,Ianvs 首先通过未知任务识别模块判断推理样本属于未知任务还是已知任务。若是已知任务,则从云端知识库中调度对应模型部署在边侧处理该任务,同时基于已知任务样本对模型进行增量更新。若是未知任务,则 Ianvs 通过未知任务处理模块处理该任务,利用外部系统标注并重新训练新的模型用于处理该任务。处理完成后,新的任务模型或是更新后的已知任务模型再重新整合至云端知识库中。为了方便初学者使用 Ianvs,在 Ianvs 仓库中的 examples/robot/ 文件夹下提供了一个可以直接运行的样例cid:link_1 , 详细的教程在第三节。特性二:统一化的测试流程和真实世界数据集Ianvs 对终身学习测试流程进行了统一,主要参考了 NIPS2017 的论文 “Gradient Episodic Memory for Continual Learning”,复现了其中提出的 BWT 和 FWT 指标,用于评价终身学习算法的抗遗忘能力和未知任务泛化能力。Ianvs 还开源了 Cloud-Robotics 等真实世界数据集,并提供了配套的可以开箱即用的实验代码,帮助用户快速上手 Ianvs 终身学习。数据集官网链接:cid:link_5特性三:支持快捷落地部署如下图所示,Ianvs 中终身学习算法实现的组件与 Sedna 上终身学习算法实现的组件是相兼容的,因此在 Ianvs 上研发测试的算法可以无障碍迁移部署到 Sedna 上,方便相关从业人员实地部署算法。  三、lanvs 终身学习快速教程  在这章中我们通过运行 Ianvs 终身学习的 cloud-robotics 样例向大家讲解 Ianvs 终身学习的基本流程。Ianvs 安装流程以及终身学习更详细的介绍可以参考:Ianvs-lifelong-learning-tutorial相关链接:cid:link_31)首先我们需要配置好 Cloud-Robotics 的数据集,先创建数据集的文件夹,注意如果你把数据集放到别的位置,本教程中的部分路径配置也要一并修改。mkdir /datacd /datamkdir datasetscd datasetsCloud-Robotics 数据集可以根据该数据集专属网站的指示操作获得,链接:cid:link_22)下载完成后解压数据集:unzip cloud-robotics.zip3)配置好数据集后,我们可以准备运行示例代码了。Cloud-Robotics 示例运行的代码放在 /ianvs/project/ianvs/examples/robot/lifelong_learning_bench/ 下,我们首先要配置 python 路径(这里如果 Ianvs 安装位置不一样的话需要更改路径):export PYTHONPATH=$PYTHONPATH:/ianvs/project/ianvs/examples/robot/lifelong_learning_bench/testalgorithms/rfnet/RFNet4)然后我们检查一下 yaml 文件的信息:5)上图 benchmarkjob.yaml 中 workplace 是存放模型训练输出的路径,可以改成你需要的路径。6)上图 testenv-robot.yaml 中 train_url 和 test_url 是数据集索引的路径,如果你的数据集存放位置和教程不一样,则需要修改 train_url 和 test_url 的路径。7)在上图 rfnet_algorithm.yaml 中可以根据你的需求添加测试的终身学习算法,比如任务定义、任务分配等算法。本样例中提供了一个简单的示例。8)其他的配置文件暂时没有需要调整的。接下来我们就可以运行示例代码了:cd /ianvs/project/ianvs ianvs -f examples/robot/lifelong_learning_bench/benchmarkingjob.yaml 在模型终身学习任务结束后你可以看到以下内容,包括 BWT、FWT 等终身学习系统衡量指标:9)出现以上显示结果,则成功跑通了一个 Ianvs 终身学习样例!如果读者对于本次版本发布的更多细节感兴趣,欢迎查阅 Ianvs v0.2 Release Note:cid:link_0后续 KubeEdge SIG AI 将发布系列文章,陆续具体介绍终身学习全面升级的特性,欢迎各位读者继续关注社区动态。▍相关链接[1] 开源项目GitHub地址:cid:link_4[2] 数据集官网链接:cid:link_5[3] Ianvs 安装流程以及终身学习更详细的介绍链接:cid:link_3[4] Cloud-Robotics 数据集:cid:link_2[5] Ianvs v0.2 Release Note:cid:link_0
  • [公告] 【获奖公示】10.25号直播 / DTSE Tech Talk丨NO.46:云原生微服务的下一站:Proxyless Service Mesh
    中奖结果公示感谢各位小伙伴参与本次活动,欢迎关注华为云DTSE Tech Talk 技术直播更多活动~本次活动获奖名单如下:账号名 奖项名称 奖品名称xj120141121 优质提问 华为云定制保温杯hw081993541 优质提问 华为云定制保温杯hid_oadhx28f7dx7mds 微信抽奖 华为云定制周边好礼hid_5mwsprsnmnfz10k 微信抽奖 华为云定制周边好礼hid_155uke5xwymvo2d 微信抽奖 华为云定制周边好礼hid_nt7cax4_p9ecsrw 微信抽奖 华为云定制周边好礼hw020230876 微信抽奖 华为云定制周边好礼hw081993541 官网抽奖 华为云定制飞盘yizhangl 官网抽奖 华为云定制飞盘
  • [公告] 华为云云容器引擎CCE产品文档优化升级!
    云原生产品技术栈庞大,需要用户对容器、Kubernetes等核心技术都有扎实的理解和掌握;同时问题定位和排查也较为困难,需要用户对不同系统模块原理非常熟悉。这些因素导致云原生产品上手门槛高、配置和运维复杂。为此,华为云云容器引擎CCE产品团队在CCE文档方面进行了重点优化,以降低用户的使用难度:优化文档结构,以便用户更系统地获取所需信息。新增大量实操内容,提供了配置参考,丰富了最佳实践。对已有文档内容进行重构与升级,更新了关键操作指导,确保内容更加易用。新增高质量问答对,实现智能化问答。通过文档服务的全面提升,用户可以更轻松地上手和使用云原生产品,大幅降低难度。结构优化:知识体系完善,学习路径清晰为了帮助用户更直观地获取所需信息,在内容结构上,我们针对用户学习和检索行为对文档目录进行了优化,使用户能够更加清晰了解CCE的学习使用路径。用户可以轻松地跟随这条路径,从入门级别的基础操作指导开始,逐步深入到更高级的管理和运维实践。这种渐进式学习路径帮助用户建立坚实的基础,从而更好地理解和掌握云原生技术。图1 文档目录优化其次,我们加强了文档之间的关联性。每篇文档都与其他相关文档形成了链接,帮助用户在需要的时候能够轻松地跳转到相关主题。 确保用户可以更全面地了解整个云原生技术生态系统。图2 文档关联性增强内容上新:实操案例丰富,满足用户需求CCE文档的内容优化是为了让用户能够在使用CCE时轻松获取所需信息,配置系统并应对各种关键场景。首先,我们引入了一份详尽的CCE配置参考手册,其中列出了各类参数的详细说明,包括集群、节点等各项配置。用户可以在配置手册中找到所需的参数信息,从而更好地理解和掌握系统配置。图3 配置手册此外,我们还新增多篇CCE最佳实践,覆盖了一系列关键场景,如基于容器的CI/CD、应用上云、日志监控等,旨在帮助用户在实际应用中成功地配置和管理云原生环境。用户可以依照这些最佳实践,快速了解如何部署容器应用、将服务迁移到云端以及如何设置有效的日志监控系统。这些实际场景的指导有助于用户将理论知识转化为实际操作,提高技能水平,同时减少配置和部署的复杂性。图4 最佳实践内容重构升级:核心知识更可靠,操作更明确对文档内容进行了重构与升级,更新了关键操作指导,确保内容更加易用。例如我们对容器存储相关文档进行了全面的重构,容器存储是云原生环境中不可或缺的一部分,因为它涉及到应用程序数据的持久性和可靠性。我们重新审视并更新了存储文档,确保其内容涵盖了各种存储解决方案和最佳实践,并将内容从以K8s对象角度更新为存储类型角度组织,使得用户能够更加直观的从使用存储的角度查找并使用文档。图5 存储内容重构升级智能问答增强:用户体验更友好,问题快速解答在CCE文档的智能问答部分,我们新增了超过800条高质量问答对,旨在全面覆盖CCE的常见问题和疑虑。这意味着用户现在可以像与客服交互一样,通过智能问答系统获得即时反馈,无需漫长的搜索或等待。这项改进的好处不仅仅在于提供更快速的解答,还在于增强了文档的互动性和友好度。用户不再需要翻阅大量文档或手动搜索答案,而是可以直接向智能问答系统提问。这种自然语言查询的方式使文档更加与用户互动,打破了传统文档的单向性质。用户可以随时提出问题,获得立即的、个性化的答案,从而提高了文档的实用性和用户体验。图6 智能问答未来愿景华为云CCE致力于为用户提供配置更简单、管理更便捷、流程更透明的容器服务。未来我们将持续打磨CCE的文档使用体验,力争为用户带来更多价值。如果您有任何的建议或意见,可以通过页面下方的反馈意见告知我们,您的任何意见对我们来说都很重要。服务体验请访问https://www.huaweicloud.com/product/cce.html云容器引擎 CCE
  • [问题求助] Proxyless Service Mesh如何处理服务间的通信和交互?
    Proxyless Service Mesh如何处理服务间的通信和交互?
总条数:495 到第
上滑加载中