Harbor应用案例:品高云企业级DevOps实战

Stella981
• 阅读 731

Harbor应用案例:品高云企业级DevOps实战

注:微信公众号不按照时间排序,请关注“亨利笔记”,并加星标以置顶,以免错过更新。

Harbor 在国内外已经有很多落地案例,本文介绍 Harbor 项目合作伙伴品高云的 DevOps 案例,节选自《Harbor权威指南》一书。

品高云是广州市品高软件股份有限公司开发的云操作系统,DevOps  容器服务是品高云面向云原生应用的云服务功能,使用了 Kubernetes 和 Harbor 分别作为容器编排和镜像仓库,可面向企业级用户提供微服务开发、交付、运维等平台支撑能力。

经过数年的发展,品高云使用 Harbor 构建了 ECR(私有容器仓库)服务,实现企业账号管理镜像库,支持镜像推送和拉取、安全扫描、跨区复制,对接 EKS(弹性 Kubernetes 服务)和持续交付流程,实现了 Kubernetes 应用编排和镜像的统一管理,在央企、公安等多个大型项目中得到应用。品高云的 DevOps 容器服务架构如下图所示。

Harbor应用案例:品高云企业级DevOps实战

1.使用 Harbor 解决复杂应用的编排和交付

对于大型政企客户来说,其应用一般是由大量服务模块组成的。当这些应用被改造为微服务架构进行部署时,最具挑战的就是保障模块间彼此的依赖关系,并实现业务的持续交付能力。在使用容器架构交付时,还需要涉及持久化存储、集群高可用和绑定负载均衡等一系列方案。

为此,品高云使用了 Helm 实现对应用的统一配置和管理,并在 ECR 服务中引入了 Harbor 的 Helm Charts 管理功能,让平台像管理镜像一样管理应用的 Helm 编排包。开发者可使用品高云的 DevOps 服务,通过可视化与动态方式进行应用编排设计,在后续部署应用时,Kubernetes 集群能够自动从 Harbor 中下载编排包(如下图所示),这解耦了应用编排与集群关系,提升了灵活性;上层开发者也可以更直观地维护和管理应用交付,降低了DevOps 的应用门槛。

Harbor应用案例:品高云企业级DevOps实战

2.使用 Harbor 管理应用跨环境部署

在实际应用环境下,由于大型用户对业务稳定可靠及双模IT的架构需求,往往会有多种运行环境,如开发、测试、生产和互联网区等。开发者虽然可以利用品高云的 DevOps 服务创建交付流水线,自动编译源代码和打包、构建 Docker 镜像,并最终将其推送至各种运行环境的 ECR 仓库中,但也面临多套环境下不同镜像版本管理、重复打包和资源浪费等挑战。

为此,品高云引入了 Harbor 的镜像同步功能,在开发人员将镜像和 Helm 编排包推送到一个环境后,会自动根据开发、测试规范定时触发在相应环境下的同步,同时针对高安全环境的合规要求,在 DevOps 平台上显式控制和触发 Harbor 的复制策略,将镜像和 Helm 编排包同步推送到生产环境下,如图所示。

Harbor应用案例:品高云企业级DevOps实战

3.使用 Harbor 的多云协作

品高云在容器使用和运维过程中,针对大型政企客户多环境、多地理位置服务交付的支撑需要,逐步形成了基于 Harbor 的多云协作架构,如图所示。

Harbor应用案例:品高云企业级DevOps实战

在多云协作架构下,品高云的 DevOps 服务被部署在主云上,各个云通过对接企业统一认证实现对用户的统一管理,并对其他从云的 EKS 和 ECR 进行纳管。DevOps 服务通过流水线实现了对应用的持续集成和持续交付,管理应用从代码编译到部署的整个生命周期。

在具体的应用支撑过程中,开发者在 DevOps 服务中配置好代码仓库源之后交付时,DevOps 服务会自动从指定的代码仓库中拉取应用代码,然后对代码进行编译,将编译好的程序构建成 Docker 镜像推送到主云的 Harbor 镜像仓库中。主云会按照复制策略自动增量地将镜像推送到纳管的其他云的 Harbor 镜像仓库,接着 DevOps 服务根据用户定义的 Helm Charts 编排,将应用部署到EKS集群中。

出于应用灾备或应用多活的目的,将应用部署到其他云环境时,DevOps 服务能够管理多个环境的配置,根据用户指定的云环境,向对应的 EKS 集群下发应用部署的任务。集群在收到任务后,就近访问同一云环境的 Harbor 来下载 Docker 镜像和 Helm 编排包。Kubernetes 集群对 Harbor 的就近访问,能够缩短应用的部署启动时间,减少应用从主云拉取镜像的带宽。

在整个过程中,Harbor 都充当着重要的角色,Docker 镜像在被推送到 Harbor 后会触发 Harbor 的漏洞扫描功能,用户可以在 DevOps 上看到镜像的漏洞扫描结果,也可以基于项目设置同步策略,将需要在从云中用到的 Docker 镜像和 Helm 编排同步到从云的 Harbor 中。在 Harbor 中存在无用镜像时,还可以触发 Harbor 的垃圾回收,清理无用镜像占用的存储空间。


《Harbor权威指南》目前当当网****优惠中,点击下图直接购买。

Harbor应用案例:品高云企业级DevOps实战

要想了解云原生、机器学习和区块链等技术原理,请立即长按以下二维码,关注本公众号亨利笔记 ( henglibiji ),以免错过更新。

Harbor应用案例:品高云企业级DevOps实战

欢迎转发、收藏以及点 “在看”和赞。

文章转载自亨利笔记。点击这里阅读原文了解更多

Harbor应用案例:品高云企业级DevOps实战

CNCF概况(幻灯片)

Harbor应用案例:品高云企业级DevOps实战

扫描二维码联系我们!


CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。

_CNCF云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。_

Harbor应用案例:品高云企业级DevOps实战

本文分享自微信公众号 - CNCF(lf_cncf)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这