• [交流吐槽] 第四天(第二章)笔记
    # 第四天(第二章)笔记 ## Hello_word ### 添加源码文件 打开源码,在applications/BeraPi/BearPi-HM_Nano/sample下,新建文件夹my_app,在此文件夹下新建一个hello_world.c文件,在新建一个BUILD.gn文件 ### 编写hello_word代码 在新建的hello_word.c文件夹中编写以下代码 ![j.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049415612141462.png) 在myapp路径下的BUILD.gn文件下添加代码 ![a.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049432371477053.png) static_library中指定业务模块的编译结果,将hello_word.c文件编译成libmyapp.a文件 在sample路径下的BUILD.gn文件下添加代码,放在最下边 ![d.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049463544142869.png) ### 编译 打开MobaXterm,打开源码,登录,在code/code_3路径下进行编译hpm dist,编译成功之后,打开HiBurn工具,需要查看开发板与电脑的连接情况,设置波特率为115200,选择烧录文件,点击connect进行下载,成功之后通过MobaXterm查看 ## 点亮LED ### 添加源码文件 在sample路径下新建my_led文件夹,在my_led路径下新建led_example.c文件和BUILD.gn文件(与hello_world一样)。 ### 添加源码 在led_example.c文件下添加代码 ![h.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049479498402130.png) 在my_led路径下的BUILD.gn文件中添加代码 ![p.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049495474462008.png) 在sample路径下的DUILD.gn文件中添加代码 ![屏幕截图 2022-07-16 210601.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049524588227066.png) 烧录代码与上述相同 烧录完成之后根据上述的步骤可以查看LED灯被点亮 ### 实现LED灯闪烁 在led原代码下添加for循环 ![w.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049538437917779.png) ## Ninja编译工具 在Unix/Linus下通常使用Makefile来控制代码的编译,但对于比较大的项目有时候会比较慢。故重新开发出来新的编译工具Ninja,编译速度更快。 ### 如何编译模块 用vscode来访问服务器 模块gn文件 ![kp.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049555055599075.png) 业务gn文件 ![op.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049570549164380.png) Json文件 ![ij.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049583578551984.png) ### 如何执行代码 ![iu.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049609303667281.png) ## CMSIS-RT0S2接口 CMSIS-RT0S2是一个通用的API,与底层的ROTS内核无关,程序员在用户代码中调用CMSIS-ROTS2 API函数时,可以方便的将应用程序从一个ROTS移到另一个ROTS。 ### OpenHarmony与CMSIS-RT0S2接口联系 OpenHarmony在CMSIS-RT0S2接口中封装了LiteOS-m的内核代码 结构关系 ![iy.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049625749422167.png) ### 使用CMSIS-RT0S2接口 在业务代码中包含有"cmsis_os2.h",通过调用API函数可以使用系统相关功能 更多API: ![ji.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20227/17/1658049641322550069.png)
  • [干货汇总] 我用开天平台做了一个城市防疫政策查询系统,你不试试?
    【摘要】 华为云开天集成工作台是基于华为在数字化转型中积累的丰富经验,为企业开发者提供基于元数据的可扩展的集成框架,降低了应用间集成工作量,并沉淀多种集成资产如连接器、业务模型、行业API等。它可以帮助客户快速建立SaaS应用之间的连接通道,打破信息孤岛与“烟囱式”架构,从而实现应用的快速构建和上线,持续提升用户体验。本文分享自华为云社区《我用开天平台做了一个城市防疫政策查询系统【开天aPaaS大作战】》,作者: jackwangcumt 。1 开天集成工作台概述      根据华为官方文档的介绍,所谓的华为云开天集成工作台是基于华为在数字化转型中积累的丰富经验,为企业开发者提供基于元数据的可扩展的集成框架,降低了应用间集成工作量,并沉淀多种集成资产如连接器、业务模型、行业API等。它可以帮助客户快速建立SaaS应用之间的连接通道,打破信息孤岛与“烟囱式”架构,从而实现应用的快速构建和上线,持续提升用户体验。      产品官方网址为 : https://www.huaweicloud.com/product/mssi.html .  开天集成工作台总体架构示意图如下图所示:       开天集成工作台使能伙伴的SaaS高效上云,与伙伴共建行业方案,共同沉淀和分享行业经验。开天集成工作台提供如下核心能力特征:(01)标准的数据模型管理:领域信息模型的采集、定义、管理能力,支撑在行业建立标准的领域信息模型库,行业内各厂家应用依托标准的领域信息模型进行互联互通。(02)灵活的API生命周期管理:支持合作伙伴的API设计、实施、测试、发布、运维、消费和运营,并可封装为便于编排的连接器和流。(03)可扩展的连接器管理:它是集成工作台流编排能力扩展的唯一方式,提供了丰富的预置连接器,用户还可以基于API自定义连接器。(04)可视化流管理:基于连接器,通过可视化的方式进行流式组合,实现集成流编排。扩展支持多种形式编排如流程编排,事件编排等。      开天集成工作台产品优势如下:     (01)丰富的行业经验:面向行业的业务模型库,拉通管理者、业务人员和IT人员。行业能力API化,覆盖工业、城市治理、教育、办公、Message、Map、移动应用等领域。SaaS应用间集成资产多样化,开箱即用,降低交付复杂度。     (02)灵活易用地集成:基于标准业务模型的集成模式,每个应用只需集成一次,实现X*Y*Z变成X+Y+Z。开放的连接框架,可灵活定义各种连接器和流,适配企业的业务逻辑。2 开天集成工作台用户和应用场景        开天集成工作台是一个“开放、共生、智能、协同”的平台,它是搭建开发者、系统集成商、客户之间的“桥梁”和“纽带” 。具体来说,用户可以分为如下几种类型:(01)面向行业API开发者:一站式完成行业API设计、编排、测试、发布和消费,打造API商业经济。(02)面向行业应用开发者:以低代码或者零代码的方式,轻松构建面向行业的SaaS应用,加速业务创新。(03)面向系统集成商:和客户无缝对接,进行集成开发,交付项目和运维支持。同时,沉淀云上项目的集成资产,提升交付效率。(04)面向客户:企业集成资产的使用和管理,并联合生态资源如系统集成商等,完成企业数字平台建设。         开天集成工作台的应用场景也非常丰富,主要可以分为三类应用场景:(01)行业能力开放场景,企业把自身能力以API服务的形式开放出来,通过API连接应用开发者、系统集成商等,服务更多的商业场景,快速形成产业链,从而让企业以最小代价满足客户碎片化且日益增长的需求。(02)使能行业应用创新场景,合作伙伴通过集成工作台提供的低代码/零代码的方式,可以方便使用各种资产如行业API、业务模型、连接器等,完成应用的开发和部署;它使能不同层级的开发者,极大增强企业应用的供给能力。(03)SaaS应用互联场景,企业应用建设随着业务发展逐步展开,势必要解决企业存量应用与新应用之间的协同,通过建立应用间的水管,让价值信息在企业内部及企业间流动。通过集成工作台,实现云上应用间、云上应用与企业内部应用间集成。具体可以用如下几张图来说明:3 城市防疫政策查询系统快速构建        开天集成工作台内置了各类模板,可以快速基于模板构建流应用。在开发自己的应用之前,请确保成功开通开天集成工作台。目前处在公测阶段,可以免费体验,开通的网址为 : https://www.huaweicloud.com/product/mssi.html 。       注意:申请公测后,页面会跳转到开通工作台的界面,页面上如显示【您还没有开通集成工作台】属于正常跳转流程。点击【立即开通】,输入所属行业和企业名称,账号正式开通集成工作台。       登录开天集成工作台管理控制台 https://console.huaweicloud.com/macroverse/ssi/?region=cn-north-4#/console/portal  。进入【流编排】【我的流】,首次体验,可以点击【从模板创建流】页签,选择【根据出入城市查询出行城市防疫政策】模板来创建。如下图所示。        点击【创建流 】,弹出界面,单击【继续】,并显示流编排的可视化管理界面,如下图所示:      这里我们首先将发送邮件的节点删除,然后添加新的发送短信节点,如下图所示:           注意:经测试,华为短信(体验)节点发送的短信内容不能过长,否则会导致发送失败,因此,这个我将短信内容可以进行了简化。        单击【华为短信(体验)】,并编辑短信内容,如下图所示:        注意:由于防疫政策查询中的风险等级查询返回的结果是"0","1","2","3"等值,这样并不直观,因此我们自定义了一个函数getRisk(riskId)。        自定义函数可以通过如下界面进行定义,目前支持nodejs和python两种语言来进行自定义函数的创建,具体界面如下所示 :   函数创建完成后,可以进行测试,看看能否正确工作,这里需要注意参数的数据类型,这个返回的是字符串的"1" 而不是 数值 1 。该函数代码如下所示:# -*- coding:utf-8 -*- import json ## main函数是方法的入口, ##设置变量表单项的变量 ## 会被预置到inputData中, ## 如果你在上面定义了参数name ##则在inoutData["name"]就可以访问变量name ## result 是此函数的输出,可以是一个基本类型或string类型 ##,也可以是Object类型, def main(inputData): result="" if inputData["riskId"] == '0' : result="暂无" elif inputData["riskId"] == '1' : result="低风险" elif inputData["riskId"] == '2' : result="中风险" elif inputData["riskId"] == '3' : result="高风险" else : result="部分中高风险" return result    测试结果示意图如下所示:      单击左边的画布中的元素节点,右边可以显示具体的属性信息。这里我们基于手动触发事件的方式来构建查询系统。模板中的防疫出行政策查询的城市是在第一个节点进行指定的,为了更好的灵活性,我们将城市作为参数,从第一个节点进行传入。单击第一个节点,并添加参数:         然后,在第一个节点中,添加参数值,在【动态内容】中可以选择前一步定义的参数,from和to 。如下图所示:     至此,我们就可以进行【保存并测试】,这样可以来进行测试自定义的出行防疫政策查询是否可以工作,正确执行后,可以有短信通知:
  • [技术干货] 【开天aPaaS专家说】一文带你搞懂企业工作台SaaS应用的“四统一”
    作者:荀礼勇(华为云开天aPaaS专家)      众所周知,企业内部存在很多支撑运营的应用,包括:HR类应用、差旅类应用、财务类应用、业务相关类应用如CRM,这些应用都有自己的账号体系,自己的部门管理,这就导致用户很难以一个账号使用多个应用,也无法基于统一的账号来梳理企业内部的信息流,这不仅影响用户的使用体验,也大大降低了工作效率。      怎么解决呢?最好的办法就是进行账号管理的统一,这也是大多数企业数字化转型的第一步。      像华为云云商店已经有超过700+个SaaS软件,但是当前用户没有使用统一的ID服务,而是分散在每个SaaS软件独立的ID体系内,用户使用每个SaaS时都需要重新登录,使用体验很不好。      并且,由于每个SaaS之间用户体系不通,各SaaS之间如果需要数据和信息互通,就需要专门的集成开发,例如:用户想把会议系统上的会议信息同步到自己的日历上,但如果没有打通用户ID,这么简单的需求就无法完成。      为了解决上述问题,开天aPaaS企业工作台提出了“四统一”规范,即:统一账号:提供账号注册,账号同步管理能力,实现全应用账号的统一;统一组织:提供组织管理(包括部门新增、修改、删除和查看),通讯录管理及成员管理(添加成员、修改、删除、成员邀请)能力;统一登录:实现应用一次登录,其他应用无须二次登录,包括Web单点登录能力、APP单点登录登录能力;统一授权:实现SaaS应用进行组织的统一授权,授权方式包括:用户授权、组织授权、用户组授权、管理员授权。      企业工作台提出“四统一”规范,目的就是要实现账号的统一,信息的协同。这就要求必须要对用户、部门统一进行集中管理。这也是“四统一”规范主要包括的两部分内容:账号管理统一:涉及到用户管理(通过用户生成应用账号)统一、部门管理统一、授权管理统一。先将登录的相关用户信息同步到ISV服务商,ISV再根据同步过来的信息入库,并初始化用户的权限等相关内容。认证协议规范:账号如何应用到SaaS应用系统中,这就需要SaaS应用基于标准的认证协议进行改造,其认证源指向企业工作台。用户登录应用时,应用根据标准协议获取用户信息,之后与账号管理同步过来的信息进行比对,如果存在相应的角色赋权,就展示页面并显示可访问页面菜单。      这就是企业工作台统一账号、统一组织、统一登录、统一授权的“四统一”规范,如果你对“四统一”规范感兴趣,可点击以下链接,了解规范详细内容:https://support.huaweicloud.com/accessg-marketplace/zh-cn_topic_0070649109.html
  • [问题求助] 【中泰化学项目】消费者程序启动正常,发送消息后,消息不能正常消费,也没有任何异常。
    【功能模块】API测试 、消息队列服务MQS【操作步骤&问题现象】1、LiveData->API测试  名称为“1.1.1.设备属性数据变化通知”的api, 点击测试-》测试API,返回成功提示后,在java消费端收不到消息,也没有报任何异常。【截图信息】详情请看附件【日志信息】(可选,上传日志内容或者附件)详情请看附件易丽 15891449679  yili003@chinasofti.com
  • [二次开发] 通过RESTful API接口获取SmartRooms智能协同大屏的sip号码发起视频呼叫
    目前越来越多的客户使用并购买了华为云会议的SmartRooms大屏设备,它可以同样加入到华为云会议中,通过RESTful API调用的方式将设备拉入会议中,满足企业多场景自定义下的使用问题。SmartRooms激活具体步骤可参考链接:https://support.huaweicloud.com/smartroom-meeting/toctopics/zh-cn_topic_0000001167929241.html调用服务端查询企业通讯录接口serchKey字段中填写SmartRooms的名称,便于搜索响应样例获取到sip号码后,可以通过创建会议接口自动邀请或者会中邀请与会人添加SmartRooms到会议中SmartRooms可设置来电自动接听(可选)
  • [技术干货] 【开天aPaaS专家说】无码化集成系列之连接器应用场景
    作者:包宜强(华为云开天aPaaS专家)API是一种使用公开的系统功能而不是 UI 从系统访问信息的方法。API允许人们创建与系统交互的应用程序或在现有系统之上创建新的应用程序/UI。这时候您需要属性API接口定义/协议,使用不同语言的开发工具去调用它们,使用的是有一定门槛的。有了API,为什么我们还需要用连接器? 因为API对开发技能有要求啊。我们以笔记本电脑输出视频到电视为例,类比如下所示: 可以看到连接器是在API的基础之上,结合事件和业务场景,进行了封装,并提供了可视化操作UI,降低了使用门槛,例如上面的分别连接到电脑和电视的接头。通过使用连接器您可以避免点对点集成,通过集成应用如流编排组合使用不同的连接器,来访问不同的应用系统。假设您用到制造MES、办公OA系统,这些系统有自己的“语言”,您就需要1个翻译人员,他能打开两个不同系统的钥匙,从而简化这两个系统之间的沟通。 接下来大家可以对API进行组合编排,发布成新API的连接器-API流,通过它,您可以很方便实现场景化API。例如点击 创建流定义组合的API的请求和响应,并添加其它连接器调用不同的API。 例如您有天气API,获取位置信息API,您可以通过API编排,发布一个新的带有位置信息的API,您只要输入位置信息既可返回所在位置的天气,这样的话可以简化API的多次调用。 相关术语:1、连接器对接各类应用/系统的工具,开发者以可编排实例的方式集成第三方系统,无需关注具体代码实现,只需要配置服务地址和鉴权信息。2、操作操作是和对接系统的交互例如使用某个操作在 SQL 数据库中查找、写入、更新或删除数据。3、触发器在发生特定事件时选择某个操作。4、连接连接器存在各种的认证配置信息,而连接就是来保存这些认证信息,只有在配置了连接之后,才可以正常使用连接器。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~立即体验开天aPaaS集成工作台
  • [活动体验] [活动体验] API中文文档上新,MindSpore邀您检视
    mindspore.nn.MSSSIMissue:https://gitee.com/mindspore/mindspore/issues/I5EYQR?from=project-issuePR:https://gitee.com/mindspore/mindspore/pulls/37025
  • [问题求助] CloudLink Kit_21.0.0.6_SDK iOS版包含私有api不能上架App Store
    CloudLink Kit_21.0.0.6_SDK包含私有api,不能上架App Store被拒原因如下:ITMS-90338: Non-public API usage - The app references non-public symbols in Frameworks/tsdk_service.framework/tsdk_service: _rdft. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/
  • [其他] CloudLink Kit_21.0.0.6_SDK iOS版包含私有api不能上架App Store
    CloudLink Kit_21.0.0.6_SDK包含私有api,不能上架App Store被拒原因如下:ITMS-90338: Non-public API usage - The app references non-public symbols in Frameworks/tsdk_service.framework/tsdk_service: _rdft. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/
  • [分享交流] 让 Rust 库更优美的几个建议!你学会了吗?
    Carl M. Kadie喜欢创建软件库。两个月前将一个 Python 包移植到 Rust crate 中。这个新的 Rust crate 与 Python 包的易用性和表现力相匹配。实践中,他学到了九条规则,可以帮助你在 Rust 中创建漂亮的库。规则是:1.创建简洁明了的例子2.改进函数参数使其能够接受更多的类型3.了解你的用户的需求,知道用户到底想要什么4.使用构建器(builder) 来让其可配置化5.写好文档让你的设计更有诚意6.定义 From 来接收常见类型7.编写API测试8.定义并返回有意义的错误9.使用Clippy在这种情况下,库是供其他程序使用的 Rust crate。库的 API是程序可以调用的一组公共函数和对象。功能性 API 只是让用户做他们需要做的一切;而优美的 API 可以让他们以简单而明智的方式完成他们需要做的事情。
  • [问题求助] 【OBS产品】【授权用户获取桶列表功能】将权限桶读取授予其他用户,其他用户如何能查询到该桶,API请求和OBS客户端都获取不到
    【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 留言管理是否可以提供api进行自动导出
    留言功能挺实用的, 但是每次手动导出很麻烦,也不能做到及时,开发者是否可以考虑增加一个sdk或者接口提供留言导出功能
  • [问题求助] 【LB】【通过API添加后端云服务器报错】如何通过lb的sunbet筛选可以添加的云服务器
    【功能模块】API 负载均衡 pool 中添加云服务器报错【操作步骤&问题现象】1、LB中添加pool2、pool 中添加云服务器报错所有的操作都是通过API请求的看报错信息是由于云服务的subnet 与 loadbalancer 的子网不匹配导致的,请问如何通过LB 的subnet去AP查询可添加云主机,筛选条件是什么【截图信息】【日志信息】(可选,上传日志内容或者附件)"NeutronError": {"type": "MemberRouterLoadBalancerRouterMismatch", "message": "Router of member's subnet ff65f2cc-d8f9-42d1-9200-d492f3da3d00 and router of loadbalancer's subnet d62410b4-7b03-4e2a-819d-2e744b15f7b0 mismatch
  • [问题求助] 【RPA产品】【API功能】有没有API可供外部调用以运行机器人
    【功能模块】执行器或管理中心【操作步骤&问题现象】执行器或管理中心是否有API可供外部调用,触发启动运行机器人【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [知识分享] 使用Karmada实现Helm应用的跨集群部署
    【摘要】 Karmada已经实现了多集群场景下的Kubernetes资源(包括CRD)的分发以及管理。但当前多集群应用往往不是单一的资源形式,使用Helm对应用进行打包的使用场景也非常常见。借助Karmada原生API的支持能力,Karmada可以借助Flux轻松实现Helm应用的跨集群部署。本文分享自华为云社区《 使用Karmada实现Helm应用的跨集群部署【云原生开源】》,作者:华为云云原生开源团队。背景通过使用 Kubernetes 原生 API 并提供高级调度功能,Karmada已经实现了多集群场景下的Kubernetes资源(包括CRD)的分发以及管理。但当前多集群应用往往不是单一的资源形式,使用Helm对应用进行打包的使用场景也非常常见。借助Karmada原生API的支持能力,Karmada可以借助Flux轻松实现Helm应用的跨集群部署。部署Karmada要部署Karmada,你可以参考社区的安装文档(https://github.com/karmada-io/karmada/blob/master/docs/installation/installation.md)。如果想快速体验Karmada,我们建议通过hack/local-up-karmada.sh构建一个Karmada的开发环境。部署Flux在Karmada控制面中,你需要安装Flux的CRD,但不需要安装Flux控制器来调和基于CRD创建的CR对象,它们被视为资源模板,而不是特定的资源实例。基于Karmada的work API,它们将被封装为一个work对象下发给成员集群,最终由成员集群中的Flux控制器进行调和。kubectl apply -k github.com/fluxcd/flux2/manifests/crds?ref=main --kubeconfig ~/.kube/karmada.config在成员集群中,你可以基于以下命令安装完整的Flux组件。flux install --kubeconfig ~/.kube/members.config --context member1 flux install --kubeconfig ~/.kube/members.config --context member2你可以参考此处的文档(https://fluxcd.io/docs/installation/)来获得更详细的安装Flux的细节。提示:如果你想在你所有的集群上管理基于HelmRelease的应用,你需要在你的所有成员集群中安装Flux。Helm release分发准备工作就绪,下面将以一个podinfo的简单应用为例演示如何完成Helm chart分发。1.在 Karmada 控制平面中定义一个 Flux 的HelmRepository CR对象和一个 HelmRelease CR对象。它们将视作资源模板。apiVersion: source.toolkit.fluxcd.io/v1beta2 kind: HelmRepository metadata: name: podinfo spec: interval: 1m url: https://stefanprodan.github.io/podinfo---apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease metadata: name: podinfo spec: interval: 5m chart: spec: chart: podinfo version: 5.0.3 sourceRef: kind: HelmRepository name: podinfo2. 定义一个 Karmada的PropagationPolicy 对象将它们的资源实例下发到成员集群:apiVersion: policy.karmada.io/v1alpha1 kind: PropagationPolicy metadata: name: helm-repo spec: resourceSelectors: - apiVersion: source.toolkit.fluxcd.io/v1beta2 kind: HelmRepository name: podinfo placement: clusterAffinity: clusterNames: - member1 - member2---apiVersion: policy.karmada.io/v1alpha1 kind: PropagationPolicy metadata: name: helm-release spec: resourceSelectors: - apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease name: podinfo placement: clusterAffinity: clusterNames: - member1 - member2上述配置将会把Flux的资源对象下发到成员集群member1和member2中。3. 将上述对象提交给Karmada-apiserver:kubectl apply -f ../helm/ --kubeconfig ~/.kube/karmada.config你将会得到以下的输出结果:helmrelease.helm.toolkit.fluxcd.io/podinfo created helmrepository.source.toolkit.fluxcd.io/podinfo created propagationpolicy.policy.karmada.io/helm-release created propagationpolicy.policy.karmada.io/helm-repo created4. 切换至成员集群验证应用是否成功下发helm --kubeconfig ~/.kube/members.config --kube-context member1 list你将会得到以下的输出结果:基于 Karmada 的 PropagationPolicy,你可以灵活地将 Helm应用发布到你期望的集群。为特定集群定制 Helm 应用上述的示例显示了如何将同一个Helm应用分发到 Karmada 中的多个集群。此外,你还可以使用 Karmada 的 OverridePolicy 为特定集群定制Helm应用。例如,上述应用包括了一个Pod副本,如果你只想更改 member1集群中的应用所包含的Pod副本数,你可以参考以下的 OverridePolicy策略。1.定义一个Karmada的OverridePolicy对象。apiVersion: policy.karmada.io/v1alpha1 kind: OverridePolicy metadata: name: example-override namespace: default spec: resourceSelectors: - apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease name: podinfo overrideRules: - targetCluster: clusterNames: - member1 overriders: plaintext: - path: "/spec/values" operator: add value: replicaCount: 22. 将上述对象提交给Karmada-apiserver:kubectl apply -f example-override.yaml --kubeconfig ~/.kube/karmada.config你将会得到以下的输出结果:overridepolicy.policy.karmada.io/example-override created3. 在 Karmada 控制平面中应用上述策略后,你会发现 member1成员集群中的Pod实例数已变更为 2,但 member2 集群中的那些保持不变。kubectl --kubeconfig ~/.kube/members.config --context member1 get po你将会得到以下的输出结果:NAME READY STATUS RESTARTS AGE podinfo-68979685bc-6wz6s 1/1 Running 0 6m28s podinfo-68979685bc-dz9f6 1/1 Running 0 7m42s参考文档:https://github.com/karmada-io/karmada/blob/master/docs/working-with-flux.md附:Karmada社区技术交流地址添加Karmada社区助手微信k8s2222进入社区交流群,和Maintainer零距离。项目地址https://github.com/karmada-io/karmadaSlack地址:https://slack.cncf.io/
总条数:968 到第
上滑加载中