高手问答第 256 期 —— Harbor:助你玩转云原生制品管理

白开水不加糖 发布于 2020/11/03 10:47
阅读 8K+
收藏 3

云原生技术的兴起进一步助力企业实现数字化转型,赋能企业IT战略升级。在云原生生态中,容器镜像Helm Charts 云原生制品的管理与分发是至关重要的一环。高效地运维云原生制品仓库以支撑容器化业务和平台,是踏入云原生世界必要的步骤。

Harbor 是国内原创的云原生开源项目,是业界广泛使用的云原生制品仓库项目,可帮助用户提高云原生制品管理效率, 例如:OCI 制品的管理、高可用制品仓库的构建、安全策略的设计、备份和恢复策略的应用以及 API 的使用等等。

OSCHINA 本期高手问答(2020  11  3 —— 2020 年 11 9 )邀请到了来自 Harbor 开源项目的张海宁老师 @burnabybull 和邹佳老师 @steven_zou ,与大家一起进行云原生制品管理的最佳实践探讨。

问答主题

本次问答主要包括以下方向:

  • 如何使用 Harbor 搭建私有仓库(安装与部署
  • 如何实现资源隔离与多租户模型(项目和 RBAC)
  • 如何高效分发云原生制品(复制,缓存和 P2P)
  • 如何实现云原生制品的安全分发(漏洞扫描和签名)
  • 资源清理与垃圾回收
  • 构建高可用的云原生制品仓库服务
  • 与 Harbor 集成实现更多能力支持(REST APIAUTH 集成、扫描器集成与P2P集成)

有其他相关的问题,也欢迎提问。  

嘉宾简介

  • 张海宁,VMware 中国研发中心云原生实验室技术总监,Harbor 开源项目创建者及维护者,拥有多年软件架构设计及全栈开发经验,为多个开源项目贡献者,Cloud Foundry 中国社区较早的技术布道师之一,“亨利笔记”公众号作者,从事云原生、机器学习及区块链等领域的创新工作。著有《Harbor 权威指南》、《区块链技术指南》等书籍。

  • 邹佳,VMware中国研发中心主任工程师,Harbor开源项目架构师及核心维护者,拥有十多年软件研发及架构经验,获得PMP资格认证及多项技术专利授权。曾在HPEIBM等多家企业担任资深软件工程师,专注于云计算及云原生等领域的研究与创新。著有《Harbor权威指南》等书籍。

为了鼓励提问,【电子工业出版社】问答结束后从提问者中抽取 5 名幸运用户赠与正版《Harbor 权威指南》1 本。

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就相关问题向张海宁老师 @burnabybull 和邹佳老师 @steven_zou  提问,直接回帖提问即可。

加载中
0
白开水不加糖
白开水不加糖

高手问答第 256 期 —— Harbor:助你玩转云原生制品管理

@zhuiai @卜占贤  @雪舞潇湘  @donghui2020  @猪娃娃

恭喜以上五位网友分别获得《Harbor 权威指南》图书一本
请私信 @白开水不加糖  告知快递信息(格式:姓名+电话+地址)

卜占贤
卜占贤
已私信,感谢
1
猪娃娃
猪娃娃

@burnabybull 你好张老师,我想要咨询一下,在生产环境物理网络隔离的情况下有没有什么方便的手段去同步镜像呢?或者有没有什么好办法解决这种网络隔离的问题?

猪娃娃
猪娃娃
感谢
burnabybull
burnabybull
如果只是防火墙隔离,可以考虑配置防火墙策略。如果允许跳板机,可以从跳板机中转。如果是严格的物理隔离,只能用U盘等方法拷贝镜像到生产环境中。
1
name李
name李

@burnabybull 张老师您好。 部署harbor的时候,harbor 复制任务 会经常卡在 InProgress,请问是什么原因呢

steven_zou
steven_zou
具体workaround的解决方案,可以参考此FAQ: https://github.com/goharbor/harbor/wiki/Harbor-FAQs#replication
steven_zou
steven_zou
这个问题在Harbor 2.0以前版本中会有出现,在之后对job service做了一些改进之后,应该可以大概率避免此问题。问题产生的原因是此状态信息来源于数据库的状态数据,其是通过jobservice的webhook反馈得到的,某些时候,受一些不确定事件的影响(比如网络),会造成webhook的丢失,进而造成状态数据无法及时得到更新。如果可能,建议升级到新版本。
1
斐语留言
斐语留言

@steven_zou      能问下,Harbor为什么选择PostgreSQL吗?为啥不支持下MYSQL?以后会再支持下MYSQL吗??

steven_zou
steven_zou
在之后的2.2版本后,会将Clair从默认安装的component列表中移除,这样就比较容易支持MYSQL. 欢迎社区积极参与和贡献。
steven_zou
steven_zou
随着Harbor项目的成长,引入了一些其它组件来支持一些新功能,如Clair和notary。为了避免多重数据库问题,保持数据库的一致性,选择了这些组件都支持的数据库driver,也就是PSQL。同时支持多种数据库类型,需要更多的effort。如果社区的达人有兴趣的话,贡献相关的实现支持。
0
enable-
enable-

 @burnabybull   @steven_zou  两位老师好!  异地多机房部署Harbor集群时 , Harbor的远程复制功能同步速度 有点慢  如何高效分发云原生制品 呢

steven_zou
steven_zou
Harbor的远程复制目前是基于API层面上实现的,确实很难达到特别优秀的性能水准。不过,replication的设计初衷是比较聚焦内容复制且非及时的场景,也就是接受一定的延迟的情况下的内容复制。不过,我们也在考虑是否有更好更高效的底层数据复制技术来支持更为高效率的replication。如果你有想法,也欢迎在github repo上开issue来一起讨论。
0
海波波bo
海波波bo

@steven_zou 老师好,我使用harbor的时候接入LDAP时候,用户配置没有问题,组配置也能获取到,可是在项目配置权限的时候,配置ldap组却生效不了。

海波波bo
海波波bo
回复 @steven_zou : 感谢老师
steven_zou
steven_zou
此问题更像是bug或者配置issue,建议在我们的github上开个issue,提供一下较为详细的配置过程和问题情况,如果可能的话,提供core组件的log就更好,便于我们进行troubleshooting。另外,建议,你在github的harbor repo的issue列表里,search一下是否有同样的问题存在。我印象里最近resolve过类似的问题。
0
donghui2020
donghui2020

@steven_zou harbor v1.2.0 升级到 harbor 2.0,有大量数据,如何升级比较好,有什么需要注意的呢?

donghui2020
donghui2020
回复 @大盘 : 嗯,这也是一种方式,除了镜像,还有数据库也要迁移~
大盘
大盘
我是从 harbor v1.1.2 升级到 2.0的,不好直接升级,就是迁移镜像,走API,写脚本!
donghui2020
donghui2020
回复 @burnabybull : ok,已关注~
burnabybull
burnabybull
回复 @donghui2020 : 可关注Harbor 共众号: HarborChina
donghui2020
donghui2020
回复 @burnabybull : 感谢解答,期待升级指引~~
下一页
0
雪舞潇湘
雪舞潇湘

@burnabybull 老师好,目前我这边使用Harbor管理Helm-Chart和Docker镜像,我想了解一下几个问题;1、Harbor的高可用是否适合跑在K8S里;2、如何手工清理Harbor内长期无Pull的Docker镜像(硬盘的消耗太大);感谢回答,谢谢

雪舞潇湘
雪舞潇湘
回复 @steven_zou : 好的,harbor-operator我持续关注一下。暂时我这边先用K8S的方式进行HA,后面有机会的话我也试试harbor-operator看看
雪舞潇湘
雪舞潇湘
回复 @burnabybull : 好的,感谢答疑。那我这边开始筹备使用Helm Chart部署Harbor,以及试着配置Tag retention,看来每天愁硬盘存储的问题要过去了。
steven_zou
steven_zou
注意:harbor-cluster-operator 这个repo在后续版本中会合并到https://github.com/goharbor/harbor-operator/中去。
steven_zou
steven_zou
如果想尝试一下“一站式”的operator,可以使用此release: https://github.com/goharbor/harbor-cluster-operator/releases/tag/v0.5.0 按照这个安装指引 https://github.com/goharbor/harbor-cluster-operator/tree/v0.5.0#installation 来安装。
steven_zou
steven_zou
Harbor operator也在紧锣密鼓的开发中,之后提供一站式HA部署。所谓“一站式”就是部署Harbor的同时也会以HA模式部署其所依赖的各种服务,包括 数据库(Postgresql)、缓存(Redis)和存储(使用minIO). 可以关注repo: https://github.com/goharbor/harbor-operator/.
下一页
0
南方Go
南方Go

@burnabybull   1 .harbor 2.0  和k8s关系是什么?

 2. 一个java开发怎么快速使用harbor, 应用到工作中?

 3. harbor 的源码使用了什么设计模式?

burnabybull
burnabybull
1. Harbor 2.0 可以和K8s配合使用,2. 如果Java应用构建到镜像里面,可以把镜像存到Harbor中。 3. Harbor的UI和后端使用MVC的模式。
0
大盘
大盘

@burnabybull   为何 harbor 2.1 和 harbor2.0 API接口差别有点大呢?

steven_zou
steven_zou
应该不会的。有具体例子吗?您觉得那块的API变化导致差别比较大呢?
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部