因为letsencrypt的服务端boulder需要进行打包, 所以先把内网的 harbor registry 先恢复了, 这里使用的是 NFS 做持久化
准备
我的服务器是 Tower , 内置了 NFS 服务, 没啥好准备的, 创建一个 Share 即可
检测 nfs 是否开启, 使用 showmount
可以看见有两个这里使用 harbor_registry
创建 PV
apply 执行之后, 运行kubectl get pv
查询是否创建成功
创建 PVC
apply 执行之后, 运行kubectl get pvc
查询是否创建成功
申请 SSL 证书
这个地方随意可以按照前文自建 CA 签发, 也可以找其他的 也可以通过 cert-manager进行签发, 这个就按照自己需要
一共 2 张证书分别为
- core 的
harbor.haozi.local
- notray:
notray.harbor.haozi.local
把申请好的证书安装到 k8s 内
这里记住名字
安装 harbor
新版本的 harbor 已经放弃了直接手动安装, 需要使用harbor-helm
这么个玩意
安装 helm
跟着官方文档走就行了, 先把二进制包下载下来
执行helm init --history-max 200
下方大部分引用自kubernetes之helm简介、安装、配置、使用指南(以下 Helm 的安装为CSDN博主「菲宇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。)
创建 Kubernetes 的服务帐号和绑定角色
为 Tiller 设置帐号
查看是否授权成功
验证 Tiller 是否安装成功, 这一步大概需要 1 分钟左右 kubectl -n kube-system get pods|grep tiller
安装 Ingress
安装 harbor
下载 harbor-helm
源码
这里要注意一件事情不能使用 Master 分支的代码, 我试过了跑不起来, 解决了好久
修改 values.yaml
下面主要修改这几个地方
- expose -> tls -> secretName 这个是 Core SSL 证书 填上面安装的secret名称
- expose -> tls -> notarySecretName 这个是 notary SSL 填上面安装的secret名称
- expose -> ingress -> hosts->core 访问的域名
- expose -> ingress -> hosts->notary 域名
- persistence -> persistentVolumeClaim 里面每一个的 storageClass, 其他的删掉
- externalURL 访问的网址
- harborAdminPassword 系统密码
- secretKey 秘钥
其他的按需修改
编辑好以后执行 , 这个命令可以让 helm 根据模板生成编排yaml, 可以很方便的修改和部署
安装harbor
卸载harbor
使用 admin
的账号, 和你设置的密码( 默认为Harbor12345
) 即可进入