跳到主要内容

k8s内搭建harbor

· 14 分钟阅读
月子喵

因为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

加载中.....

主页截图%}
Preview

使用 admin的账号, 和你设置的密码( 默认为Harbor12345) 即可进入