96SEO 2026-02-19 19:37 18
等企业必需的功能同时针对中国用户的特点设计镜像复制和中文支持等功能。

目前该项目已经捐献给CNCF并且毕业。
https://github.com/goharbor/harbor
Harbor说白了就是一个有web管理界面具有高可用特性的docker仓库现在又加入了chart仓库
。
docker官方提供的registry,功能简单没有图形管理界面使用不是很友好。
harbor是registry的二次开发功能更强大。
Helm可以简单的理解为k8s的包管理器类比CentOS和yum、Unbuntu和apt;但Helm更复杂一些在使用k8s时本身项目就会产生大量yaml配置文件在加上不同环境yaml更是翻倍使得升级维护这些yaml成为一个痛苦没有技术含量的重复劳作helm就是为了解决该问题helm把项目yaml编辑成模板需要修改的地方替换成变量由helm执行命令时替换这样一套模板yaml解决所有环境问题这是helm最核心的功能。
Helm作为CNCF开源项目毕业
本文重点是Harbor安装因网上大量教程都是互相复制少有写的好的让我在安装时遇到各种坑尤其是使用https证书时。
为避免后来者看些没用的文章少走弯路故此记录。
nfs,以及安装了nfs-subdir-external-provisioner,并把nfs-client设置默认StorageClass
首先Harbor官方做的chart非常简陋有着各种问题我在安装过程中遇到好几个耽误大量时间因此不要太相信该官方出品的chart,尽量选择使用人数较多的版本进行安装。
下面分两部分进行介绍如果你没有合法的https证书看3.1有合法证书看3.2
我自己尝试过多次截至1.11.0版本不使用证书是访问不了的会有各种问题至少ingress模式下是如此因此expose.tls.enabled:true
这个是不用修改。
官方chart改的越少成功几率越高出问题可能也越少。
expose.ingress.hosts.coreharbor.yourdomain.com
expose.ingress.hosts.notarynotary.harbor.yourdomain.com\
externalURLhttps://harbor.yourdomain.com:30443
harborAdminPasswordHarbor12345该命令默认会安装最新版本
指定命名空间expose.ingress.hosts.core设置平台ingress路由expose.ingress.hosts.notary
notary的ingress路由externalURL平台外部访问地址在ingress模式下和expose.ingress.hosts.core的值对应这里的30443是我自己k8s环境ingress的NodePort
admin账号密码默认值Harbor12345该命令在1.11.0下是没问题的可使用–version
配置本地hosts文件把harbor.yourdomain.com指向master节点IP,浏览器输入https://harbor.yourdomain.com:30443访问账号/密码admin/Harbor12345
可以自行创建项目公开项目不用登录即可拉去镜像私有项目只有登录后才能拉取可创建人员分配不同项目权限进行权限管理等
设置完成Hosts后还需要设置docker的daemon.json文件因为docker仓库registry本身默认就需要https证书才正常使用上面虽然配置了证书但证书是自己生成的并不是受信的颁发机构颁发的所以证书无效docker
https://harbor.yourdomain.com:30443/v1/users/:
这时需要让docker忽略该问题修改daemon.json文件不存在就创建
harbor.yourdomain.com:30443/library/nginx:1.23推送docker
harbor.yourdomain.com:30443/library/nginx:1.23路径中的library就是项目名称
需要外网访问由于harbor上存放公司核心软件资产如果开放外网访问则尽可能使用https;不合法的https证书是没有加密效果的也就是3.1中的方式一旦有人想拦截密码必然会泄露。
公司有自己的证书即便没有现在免费证书也很多
证书,该证书中应包含chain.crt,也就是有两个certificateprivate.key
因为需要修改配置项增多为便于多次修改使用把chart拉取到本地安装
修改values.yaml,和--set作用一样这里不再列出整个values.yaml,仅列出关键部分凡未列出的无需修改
这里非常关键设置证书来源默认为auto即自动生成如果不修改证书无法配置成功secret:secretName:
#这里不关键即便证书和域名不匹配影响不大ingress:hosts:core:
#域名跟证书匹配web访问地址ingress路由notary:
#这里没有加端口因为做了外网映射这里使用的域名为真实域名https域名-外网IP
master节点30443端口这里配置的是最终浏览器访问地址persistence:
#因为我环境配置了nfs的StorageClass且是默认的这里就可不用修改会自动根据StorageClass规则生成没有配置的朋友自己配置即可这块儿不复杂但有个坑后面说
#helm有版本概念是可用回滚的卸载后如果再次安装失败建议卸载之后清空挂载文件夹清除pv及pvc尤其版本发生变化时
最坑的是最新版本vaules.yaml中配置项有问题expose.tls下配置secretName时少了secret这一层导致配置的证书始终无法生效对照了README文件中的配置项目才发现少了一层吐血。
还有persistence.persistentVolumeClaim下jobservice的配置完全不对
正常的有两个配置项目(官方虽然更新了但我下载本地留了截图)还有jobservice下的subPath不生效其他服务可以通过配置subPath共用一个pvc,但jobservice不行……最开始我想自己创建一个pvc使用subPath区分其他服务都正常启动但到jobservice这儿死活不行我以为我哪里配置错了搞了好久才意识到是subPath没生效不做配置就能正常启动
最开始配置自己https证书死活不能生效就是这里没有配置对默认是auto,自动生成改为’secret‘才行最坑的是网上各种自己配置https的文章都是互相照抄根本没有提这个不知道他们是怎么配置的
最后也是最大的一个难点说它难它也不难但确实花了我好长时间去解决我配置上证书后使用web访问一切正常证书有效但当我docker
authority不应该啊证书合法怎么能还是未知机构查遍各种资料国内基本都是垃圾没有参考价值没法到GitHub上求助https://github.com/goharbor/harbor-helm/issues/1402也没有人回答后来终于发现问题所在docker认为证书不全可以参考GitHub上我的解答
authority,解决这个问题的办法很多后续我会单写一篇博客但问题是证书有效的情况下就不应该x509,
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback