最新要闻
- 马斯克嘲讽苹果AR头显:花3500美元买它 不如20美元买包致幻菇_全球看热讯
- 天天讯息:浓烟下的美国:N95口罩销量猛增逾10倍、中国产空气净化器大卖
- 环球时讯:16GB/32GB内存笔记本对比实测:16GB不够用了
- 讯飞星火认知大模型V1.5正式发布:知识问答突破 可以告别搜索了-环球百事通
- 2023年底更多极端天气来袭 美国警告厄尔尼诺已形成-世界热门
- 快资讯:特朗普因机密文件案被起诉 将于下星期出庭
- 快舟一号甲固体火箭第20次发射:“导里导气”
- 英国政府将对油气公司征收暴利税设定门槛
- 端午节火车票开售 热门车票“秒空”
- 基建狂魔新作!世界上建设难度最高的跨海集群工程:深中通道
- 另外赠送洁面乳:多芬氨基酸洁面泡泡2瓶49.9元发车(新低)|每日报道
- 全球短讯!大叔被疑偷拍自证清白后仍遭女子曝光 网友:太欺负人
- 考生考前与老师闲聊押中英语作文:十分幸运
- 陕西一考生考前与老师闲聊押中英语作文:十分幸运,考完第一时间找老师表达喜悦
- 茶颜悦色杯底现镊子,工作人员:是夹茶叶用的,已处理中|今日视点
- 住房公积金制度惠及面进一步扩大 去年全国发放贷款超万亿元|天天实时
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
华为云 UCS GitOps:轻松交付多集群云原生应用
摘要:使用华为云 UCS GitOps 配置管理来交付您的多云应用。
本文分享自华为云社区《华为云 UCS GitOps:轻松交付多集群云原生应用》,作者:华为云云原生团队。
随着业务的全球化发展和应用多元化部署的趋势,越来越多的客户选择通过混合云、多云模式来进行业务部署。选择多云进行部署可以提高部署业务的基础设施稳定性,在单个供应商基础设施出现故障或者访问流量激增时,可以通过配置跨云弹性来提高业务的高可用性,同时,多云还可以避免企业的技术架构被厂商锁定。尽管使用多云的优点很多,但管理多云集群和在多云的场景下发布应用却面临诸多问题和挑战。
(资料图片仅供参考)
多云场景下集群管理和应用交付的挑战
1、多集群基础设施的管理及一致性发布面临的挑战
例如,在多集群场景下的网络策略的配置,TLS证书的发布及更新管理。在现代应用程序的部署步骤中,SSL/TLS证书是很重要的一环。但在部署应用程序时,管理证书的续订通常是事后才想到的。证书的生命周期从90天到13个月不等,为了保持安全访问,这些证书需要在到期前更新/重新颁发。
鉴于大多数 Ops 团队工作繁杂,证书更新有时会被遗漏,这会导致应用间不能正常访问和工作。在多集群场景下,运维团队会每个供应商集群重复上述过程进行证书更新;而通过 GitOps 结合 Cert-manager[1]、Nginx Ingress Controller 可以一致的、统一的管理证书的自动化更新 [2]、大大提升 Ops 团队的运维管理效率 。
2. 由业务场景侧需求和集群基础设施差异性带来的差异化配置挑战
根据应用程序的业务场景诉求不同,不同集群部署的业务版本,更新频率会存在不同。例如同一餐厅在不同地域的点餐系统可供给的菜单种类,菜单上新会有差异;或由于跨国公司在不同国家推广策略不同,新的业务软件仅需要部署至部分城市所在集群等。
同时,由于业务部署的基础设施不同,应用程序部署到集群的底层架构、网络连接性、计算存储性能表现可能多种多样。例如同一份应用配置在被差异化渲染后可以被交付和托管在云上的CCE、EKS集群、客户本地数据中心中的集群(存在断连情况)、边缘端无人机的集群上(半连接集群)以及太空中卫星链所组成的集群(短时连接集群)。
因此根据每个集群的性能指标(CPU、Memory)不同,部署业务应用的实例副本数可能会不同;根据每个集群的网络连接情况不同,设置部署业务的版本更新周期,高可用设置(访问某个服务的超时重试次数等)会产生差异;根据每个集群的使用目的不同(早期生命周期阶段的集群通常由开发人员管理,而实际的预发及生产集群的可能由客户的运维团队管理),部署业务的版本和数据库连接池等变量也会存在差异。因此当有M个应用需要交付至N个集群环境中时,差异化配置的复杂度会呈M×N维度爆炸增长。
3. 使用 UI 控制台方式交付应用与各厂商控制台风格各异、难以编排大规模微服务交付之间的挑战
随着微服务规模变大,依赖UI控制台进行应用交付的方式变得复杂臃肿,其交付的顺序编排依赖人工,无法做到自动化;且无法进行审计和版本控制。
4. 缺乏统一的应用观测视角的挑战
在多云集群场景下,当前缺乏统一的视图帮助客户查看应用在多集群的部署情况、应用的健康状态及异常状态定位。
使用华为云 UCS GitOps 配置管理来交付您的多云应用
为了应对上述多云集群管理和多云应用交付的挑战,华为云 UCS 推出了基于 GitOps 理念的跨集群配置管理和应用分发的功能。通过它你可以屏蔽底层环境差异和多个管理入口,将多个集群环境的配置和治理集中于一处,以自动化的体验完成多集群基础设施的管理以及多云应用的发布及更新。
GitOps 的概念最早由 Weaveworks 公司于2017年提出,指具备版本控制、拉取和合入请求能力、具备CI/CD流水线发布能力的基础设施即代码(Infrastructure as Code, IaC),是一种云原生的持续交付模型。如图1所示,它的核心是使用 Git 仓库来管理基础设施和应用的配置,并且以 Git 仓库作为更改基础设施和应用的单一事实来源,用户从其他地方(例如集群控制台或者命令行)修改的配置均会被修正。Git 仓库中的声明式配置描述了目标环境当前所需基础设施的期望状态,借助 GitOps 能力,当集群中的实际运行的配置或应用状态与 Git 仓库中定义的期望状态不匹配时,Kubernetes Reconcilers 会根据期望状态来调整当前的状态,最终使实际状态与期望状态保持一致[3]。
图1:GitOps Operator 运行方式
基于上述的思想和技术路线,CNCF 开源社区从17年开始至今,涌现出很多火热的持续交付项目,他们以Flux、ArgoCD等CNCF毕业项目为代表,可以将用户配置在代码仓库中的Kubernetes Manifast(Deployment、Service等Yaml文件)、Helm Chart、Kustomize、Ksonnet、Jsonnet 定义和组织的应用以自动化的方式部署、将配置变化更改到应用程序的运行时环境。
UCS 的配置管理功能当前采用 Flux2 作为技术内核,并将其与 UCS 的容器舰队、集群模型进行适配。它通过简单易用的 UI 提供对华为云集群、多云集群、本地集群、附着集群和伙伴云集群进行跨命名空间、跨集群的应用分发与配置管理的能力,并在观测面板中对配置的实时状态的进行收集和展示。用户还可以将它对接到CI流水线后面,实现多云应用的 CI/CD 流水线的集成和发布。当前UCS提供如下关键能力,帮助用户实现便捷的多云交付。
▍开箱即用的GitOps引擎,兼容主流的开源生态和体验
图2:Flux2 主要组件的运行原理
UCS 会为每个开启 GitOps 引擎的集群安装一个稳定开源版本的 Flux2 组件,且用户无须运维 GitOps 引擎。每个集群中的 GitOps 引擎会以Pull模式、定周期监听和拉取最新的仓库源配置信息并把最新的配置信息及时同步至集群中。
如图2所示:Source-Controller 主要负责监视 Git 仓库源、Bucket 对象存储桶以及 Helm 仓库的存储配置变化,然后把最新 Commit 记录的制品包拉取至集群本地。而 Kustomize-Controller 和 Helm-Controller 则会负责监听集群本地拉取制品变化情况,其中以 Helm Chart/Helm Release 类型定义的制品会交由 Helm-Controller 进行渲染和同步至集群中;同理,按照 Kustomize 方式进行组织的制品交由 Kustomize-Controller 进行渲染和同步至集群中。
▍丰富的多集群差异化配置能力
随着部署应用的规模越来越大,部署集群的底层差异性越来越大,我们发现单一的一份配置对应一个集群的模式会变的越来繁琐和难以维护,因此面向多个集群的差异化配置策略随之出现。UCS 配置管理功能提供了两种多集群差异化配置的策略: Kustomize 和 Helm Release。
Kustomize 是一个 Kubernetes 应用程序配置管理工具,它提供一种简单灵活的方式来生成 Kubernetes 资源,并可以使得这些资源在不同的环境中用不同的方式进行配置[4]。如图3所示,Kustomize 策略在 Base 目录下定义所有集群公共部署资源,然后在 Overlay 目录下描述每个集群产生差异化覆盖参数。然后在部署阶段,通过动态渲染参数将最终版本的制品交付至目标集群中。
图3:Kustomize 制品组织目录示意图
同理,HelmRelease 也是参考上述思路。将公共定义的资源放置在 templates 目录下,然后结合 valuesFrom/valuesFiles 等方式从 value.yaml 读取每个环境的差异化参数,满足客户差异化的配置诉求。其配置的重点在于做好定义公共部分抽象和少数变量的差异化配置,对应用本身参数属性和运维参数进行分离,减少重复编辑和维护的成本。
▍基于Git的可审计、可持续的部署能力
UCS 配置管理将 Git 仓库中最新合入的制品配置信息同步部署至纳管的多个集群中,同时对应用发布行为进行版本化管理和权限控制,提供发布回滚和版本迭代控制,并进行审计跟踪。
基于UCS GitOps+Pipeline流水线构建多云DevOps解决方案
随着 DevOps 价值观和文化的流行,越来越多的公司选择帮助开发团队分担应用程序交付的责任,他们将多云环境下的交付交给专门的运维团队来完成,让开发团队可以更加专注于应用程序的开发和构建本身[5,6]。基于 UCS GitOps+Pipeline 流水线可构建多云DevOps 的解决方案,实现多云环境下多云应用构建和发布。开发团队和运维团队可以基于 Git 工作流,将现有流程对接到华为云 CodeArts Pipeline 流水线或者企业自建的 CI/CD 流水线之上,从而拥有多云应用的业务开发、集成、测试再到多云应用的部署—全流程 DevOps 体验。具体来讲将分为以下两个阶段:
1、定义和构建多云应用:开发团队进行业务的开发、测试、验证、打包软件和生成镜像。这里可以是采用华为云官方的 CodeArts Pipeline 流水线或者用户自建的 CI 流水线。然后定义每个集群交付资源的原始制品文件。
2、交付多云应用:运维团队首先会根据开发团队提供的原始制品文件对部署在多个集群环境中的差异化内容进行配置。此环节需要做好定义公共部分抽象和少数变量的差异化配置,对应用本身参数属性和运维参数进行分离,减少重复编辑和维护参数的成本。
然后使用 UCS GitOps 统一初始化集群所需的环境和资源,对发布步骤进行编排,通过更新配置仓库来一致的对多个集群进行自动化应用发布;同时运维团队还对应用发布行为进行版本化管理、权限控制和审计,提供发布回滚和版本迭代控制,保证业务应用的成功部署。
图4:结合UCS GitOps的多云DevOps流水线
下面将以一个详细的例子来解释:华为云某亚太跨国公司客户需要统一管理横跨多国的 Kubernetes 集群和进行业务发布,他们的线上商城业务应用同时运行在香港的华为云 CCE 集群中,新加坡的亚马逊云 EKS 集群中;并且他们在马来西亚还拥有一部分自建数据中心集群供开发团队进行业务开发和测试验证。由于每个国家消费者的商品喜好差异以及当地的供应链供给不同,商城中发布的商品类别会存在差异。在原有的交付流程中,运维团队会根据每个地域的供应商集群控制面板风格、部署业务版本,业务更新频率等因素,为每个环境单独构建一条流水线独立交付;并在每次发布版本前,运维团队会与开发团队就新版本特点和每条流水线的部署细节进行详细磋商。
而使用 UCS GitOps 可以大大降低交付上述流程的复杂度,如图4的解决方案中所示,客户采用多套环境共享一套 CI 流水线,并将构建的产物统一推送至华为云香港的SWR 镜像仓库。然后通过差异化配置不同环境的部署参数,将多个环境的发布对接到华为云 CodeArts 配置仓库,实现了从本地集群测试和验证到多个生产集群的发布的无缝切换,也极大的提升了他们多云交付的效率。
总结
综上所述,华为云 UCS GitOps 是以 Flux2 为技术内核,将其与 UCS 的容器舰队/集群模型进行适配的多云交付平台。它通过简单易用的 UI 提供对华为云集群、多云集群、本地集群、附着集群和伙伴云集群进行跨命名空间、跨集群的应用分发与配置管理的能力,并在观测面板中对配置的实时状态进行收集和展示。它可以帮助您将多个集群环境的配置和治理集中于一处,以自动化的体验完成多集群基础设施的管理以及多云应用的发布及更新。
同时 UCS 会持续关注开源社区侧多集群 GitOps 的发展趋势,并将优质特性采纳为产品的内核。在后续的版本迭代中,下列特性将会逐步支持:
1、支持容器舰队级别的配置分发:通过对舰队内部集群进行标签化管理,完成舰队视角下应用的一键分发和统一管理。
2、全面对接华为云CodeArts Pipeline:提供全流程、更好融合体验的多云 DevOps 流水线。
3、在界面中提供对接三方消息系统的应用发布状态感知能力:一方面处理来自外部系统(GitHub、Bitbucket、Harbor、Jenkins)的事件,然后通知 GitOps Toolkit 控制器有关源更改的信息;另一方面处理由 GitOps Toolkit 控制器发出的事件,然后根据事件的严重性和涉及的对象将它们转发至外部系统(Slack、Microsoft Teams、Discord、Rocker)。
参考资料
[1]在 Kubernetes 环境中自动化证书管理https://www.nginx.com/blog/automating-certificate-management-in-a-kubernetes-environment
[2]使用 Flux 管理多集群基础设施https://github.com/fluxcd/flux2-kustomize-helm-example/blob/main/infrastructure/controllers/cert-manager.yaml
[3]Codefresh Continuous Delivery for Kubernetes
[4]使用 Kustomize 对 Kubernetes 对象进行声明式管理https://kubernetes.io/zh-cn/docs/tasks/manage-kubernetes-objects/kustomization/
[5]Enterprise CI CD Best Practices
[6]GitOps-2.0 The Future of DevOps Ebook v4
点击关注,第一时间了解华为云新鲜技术~
关键词:
华为云 UCS GitOps:轻松交付多集群云原生应用
全球速看:OPEN AI 全新版本来了2.0.0永久免费在线体验构建AI开放生态
Angular4 教程_编程入门自学教程_菜鸟教程-免费教程分享
虚拟列表
马斯克嘲讽苹果AR头显:花3500美元买它 不如20美元买包致幻菇_全球看热讯
天天讯息:浓烟下的美国:N95口罩销量猛增逾10倍、中国产空气净化器大卖
环球时讯:16GB/32GB内存笔记本对比实测:16GB不够用了
讯飞星火认知大模型V1.5正式发布:知识问答突破 可以告别搜索了-环球百事通
2023年底更多极端天气来袭 美国警告厄尔尼诺已形成-世界热门
快资讯:特朗普因机密文件案被起诉 将于下星期出庭
车载雷达报警测试要点
快舟一号甲固体火箭第20次发射:“导里导气”
英国政府将对油气公司征收暴利税设定门槛
天天热点!.NET的8种JSON序列化反序列化工具供你选择
端午节火车票开售 热门车票“秒空”
基建狂魔新作!世界上建设难度最高的跨海集群工程:深中通道
另外赠送洁面乳:多芬氨基酸洁面泡泡2瓶49.9元发车(新低)|每日报道
全球短讯!大叔被疑偷拍自证清白后仍遭女子曝光 网友:太欺负人
考生考前与老师闲聊押中英语作文:十分幸运
陕西一考生考前与老师闲聊押中英语作文:十分幸运,考完第一时间找老师表达喜悦
茶颜悦色杯底现镊子,工作人员:是夹茶叶用的,已处理中|今日视点
住房公积金制度惠及面进一步扩大 去年全国发放贷款超万亿元|天天实时
天天关注:WPF中有中心点的slider滑动条
世界头条:易基因:全基因组DNA甲基化和小RNA分析揭示甘蓝型油菜种子的基因组不对称性
接口防刷处理方案,太优雅了!
Linux磁盘分区扩容-世界今亮点
ChatGTP:没人比我更懂诗歌_当前头条
四部门:深入开展家电以旧换新_天天即时看
美国铀期货U3O8价格于6月7日涨至56.25美元
方便英文单词_方便英文
医疗产业ETF(159877)涨0.67%,开立医疗涨5.08%,华兰股份涨5.31%
全球看点:唯美的歌词带意境(唯美的歌词)
天天快讯:中国无人驾驶高速地铁海外开工:最大载客量达1100人
16核i9+RTX 4060游戏本价格也被国产打下来了 七彩虹将星X15仅售5999|每日聚焦
【新要闻】赛力斯董事长张兴海:恶性竞争将毁掉企业和行业
全球关注:低头玩手机等于颈椎增压45斤!相当于6岁小孩骑脖子
马斯克要横扫欧洲!特斯拉全新超级工厂曝光:投资超300亿 或落地西班牙
陆家嘴数智天地·智慧谷项目亮相 金融科技企业拟在此设立研发总部
天天滚动:双方家长有矛盾怎么办 双方家长有矛盾怎么解决
全球微资讯!websocket
海外直播源码技术文字聊天功能的配置_当前速讯
深入浅出Spring原理及实战「缓存Cache开发系列」
每日快看:缯怎么读怎么组词_缯怎么读
环球时讯:英特尔开始停产11代处理器
王治郅视频_王治郅事件-全球最新
莫兰迪作品高清大图_莫兰迪作品 每日精选
天天消息!22.5万起 小鹏G6开启预售 官方:真正的6边形战士来了
全球实时:惠普推出新款无线耳机:充电盒自带触控屏 控制音乐播放
全球快播:高考考生遇采访喊话:取消调休 取消调休
网购格力空调收到“木各力”牌 商家拒绝退款
余承东:特斯拉FSD进入中国我们也不怕 依然可以遥遥领先
焦点快播:gtx260m显卡(gtx260m)
高考前最后一课丨常德市七中老师收到全班学生送的礼物 笑着笑着就哭了_当前快讯
dnf带幻影的史诗武器(dnf幻影手镯) 世界热闻
当前速递!猪菜磨底VS服务回暖!5月CPI或小幅反弹
热讯:流年
世界百事通!深度学习应用篇-计算机视觉-语义分割综述[5]:FCN、SegNet、Deeplab等分割算法、常用二维三维半立体数据集汇总、前景展望等
每日资讯:美团太细了:Springcloud 微服务优雅停机,如何实现?
全网Jenkins+Gitee+Docker/SSH 部署避坑点总结 每日关注
全球通讯!人工智能(AI)热潮提振了的科技股,并推高了对冲基金的回报,帮助他们挽回去年的损失
今日快讯:热力学第一定律功能关系(热力学第一定律)
热消息:favorite subject(favorite)
天天看点:辽宁省沈阳市2023-06-06 16:27发布大风蓝色预警
每日报道:qq显示iphone在线没有显示4g(qq显示iphone在线)
全球百事通!正整数包括什么分数(正整数包括什么)
鸡汤用高压锅煮要煮多久 高压锅炖鸡汤要压多少分钟
守护者之铠(永恒守护者腿铠)-全球消息
充满“海洋”味!比亚迪宋PLUS冠军版来了:选它还是四驱哈弗枭龙MAX
世界热头条丨精装版丰田陆巡 全新雷克萨斯GX全球首发:能越野的日系豪华!
美国一列满载全新汽车的火车脱轨:弯弯曲曲扭成“贪吃蛇”
快消息!K60系列终极大作!曝Redmi K60 Ultra 7月登场
重庆一女生考完哭着说终于不用做数学了:网友神回复-焦点观察
汉字的演变历史手抄报_汉字的演变历史 天天最新
高考“钉子户”梁实谈第27次高考:文综重大失误
世界短讯!珍惜时间的名人小故事(珍惜时间的名人)
全球播报:百度贴吧怎么注册帐号登录(百度贴吧怎么注册帐号)
热推荐:太极杨氏85赵斌视频(赵斌杨氏85式太极拳)
Nginx安装部署及性能优化 当前看点
每日动态!Map
恩施市教育局电子政务系统(恩施市教育局电子政务登录)
tom ford男友(sufjan stevens男朋友)_头条焦点
全球通讯!“宗”这个字应该如何正确读音?
董明珠:格力空调10年免费包修 对手不敢这么做
天玑9200手机出手 5G上行速度跑出440Mbps新纪录-世界热点
每日看点!扎克伯格批苹果Vision Pro头显:社交属性太差 不如跟Meta
梅西打义乌厂商措手不及:迈阿密新队服来不及生产 每日时讯
北大屠夫称大学生就业难关键在父母:大学生是普通教育 不要把自己当精英 世界播报
今日观点!医保卡_医保卡里的钱可以取出来吗
qq用手机怎么设置空白名字_手机qq怎么弄空白名字
当前速看:【机构调研记录】凯石基金调研江苏雷利
RTOS测试(韩国方案)
pxo理论_pxo-全球动态
runningman超能力特辑第二季_running man超能力特辑|今亮点
泰国(硬盘)
【读财报】年初以来99单IPO项目终止:海通证券数量居首,华金证券撤否率最高
人类首次!我国科研人员监测到伽马射线暴全过程:来自20多亿年前
今热点:iOS 17体验评测:20条Bug 9个变化 不值得升级
每日热门:学生打架老师要求用英语复述过程 两人散装英语让网友笑趴
福建福州:智能服务机器人产销两旺
华电国际:6月8日融券卖出80.13万股,融资融券余额2.83亿元