goharbor harbor-helm 搭建 记录
先本地安装
本地docker已经有了
安装 yum install docker-compose
下载离线安装包 https://github.com/goharbor/harbor/releases
这种方式不支持helm chart, 重新使用k8s安装 helm chart
https://github.com/goharbor/harbor-helm
添加源
helm repo add harbor https://helm.goharbor.io
helm repo update
开始安装, 这里面的持久化卷, 昨天选择使用nfs,没有用起来 , 原来是pv跟pvc是一一对应关系, 只使用静态方式创建了一个pv, 被mysql pvc 使用了,导致后面的都无法申请到pv, 所以采用动态方式去创建pv
参考外部存储 https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client/deploy
外部存储部署参考:
storageClass 应该使用 managed-nfs-storage
先卸载干净原来的
helm del --purge harbor清除pvckubectl delete pvc harbor-harbor-chartmuseum
kubectl delete pvc harbor-harbor-jobservice
kubectl delete pvc harbor-harbor-registry
kubectl delete pvc data-harbor-harbor-redis-0
kubectl delete pvc database-data-harbor-harbor-database-0
这个反斜杠的使用也有讲究, 下面的写法就执行不了,报错 Error: This command needs 1 argument: chart name
helm install --name harbor --set \
expose.type=nodePort,expose.tls.enabled=false,expose.tls.commonName=harbor,\
persistence.persistentVolumeClaim.registry.storageClass=nfs-client, \
persistence.persistentVolumeClaim.registry.size=2Gi, \
persistence.persistentVolumeClaim.chartmuseum.storageClass=nfs-client, \
persistence.persistentVolumeClaim.chartmuseum.size=1Gi, \
persistence.persistentVolumeClaim.jobservice.storageClass=nfs-client,\
persistence.persistentVolumeClaim.database.storageClass=nfs-client, \
persistence.persistentVolumeClaim.redis.storageClass=nfs-client \
harbor/harbor
改成这种方式就可以执行了
helm install --name harbor \--set expose.type=nodePort,expose.tls.enabled=false,expose.tls.commonName=harbor,persistence.persistentVolumeClaim.registry.storageClass=nfs-client,persistence.persistentVolumeClaim.registry.size=2Gi,persistence.persistentVolumeClaim.chartmuseum.storageClass=nfs-client,persistence.persistentVolumeClaim.chartmuseum.size=1Gi,persistence.persistentVolumeClaim.jobservice.storageClass=nfs-client,persistence.persistentVolumeClaim.database.storageClass=nfs-client,persistence.persistentVolumeClaim.redis.storageClass=nfs-client \harbor/harbor
执行结果如下
[root@node0 ~]# helm install --name harbor \
> --set expose.type=nodePort,expose.tls.enabled=false,expose.tls.commonName=harbor,persistence.persistentVolumeClaim.registry.storageClass=nfs-client,persistence.persistentVolumeClaim.registry.size=2Gi,persistence.persistentVolumeClaim.chartmuseum.storageClass=nfs-client,persistence.persistentVolumeClaim.chartmuseum.size=1Gi,persistence.persistentVolumeClaim.jobservice.storageClass=nfs-client,persistence.persistentVolumeClaim.database.storageClass=nfs-client,persistence.persistentVolumeClaim.redis.storageClass=nfs-client \
> harbor/harbor
NAME: harbor
LAST DEPLOYED: Tue Jun 25 11:33:46 2019
NAMESPACE: default
STATUS: DEPLOYEDRESOURCES:
==> v1/ConfigMap
NAME DATA AGE
harbor-harbor-chartmuseum 23 1s
harbor-harbor-clair 1 1s
harbor-harbor-core 34 1s
harbor-harbor-jobservice 1 1s
harbor-harbor-nginx 1 1s
harbor-harbor-notary-server 5 1s
harbor-harbor-registry 2 1s==> v1/Deployment
NAME READY UP-TO-DATE AVAILABLE AGE
harbor-harbor-chartmuseum 0/1 1 0 1s
harbor-harbor-clair 0/1 1 0 1s
harbor-harbor-core 0/1 1 0 1s
harbor-harbor-jobservice 0/1 0 0 1s
harbor-harbor-notary-server 0/1 0 0 1s
harbor-harbor-notary-signer 0/1 0 0 1s
harbor-harbor-portal 0/1 0 0 1s
harbor-harbor-registry 0/1 0 0 1s==> v1/PersistentVolumeClaim
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
harbor-harbor-chartmuseum Pending nfs-client 1s
harbor-harbor-jobservice Bound pvc-0ab3ab52-96fa-11e9-837b-000c2915f050 1Gi RWO nfs-client 1s
harbor-harbor-registry Bound pvc-0ab41cac-96fa-11e9-837b-000c2915f050 2Gi RWO nfs-client 1s==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
harbor-harbor-chartmuseum-7ff65b9699-f8s5x 0/1 Pending 0 1s
harbor-harbor-clair-54c47dfdfc-nxxkf 0/1 ContainerCreating 0 1s
harbor-harbor-core-5884f5fc7d-bj88g 0/1 ContainerCreating 0 1s
harbor-harbor-database-0 0/1 Pending 0 0s
harbor-harbor-jobservice-788bc864b6-9zmsz 0/1 Pending 0 1s
harbor-harbor-nginx-dbdb9d7ff-tcfks 0/1 Pending 0 1s
harbor-harbor-notary-server-6d85446444-mvtxj 0/1 Pending 0 1s
harbor-harbor-notary-signer-7794d76ff-mm7cm 0/1 Pending 0 1s
harbor-harbor-redis-0 0/1 Pending 0 0s==> v1/Secret
NAME TYPE DATA AGE
harbor-harbor-chartmuseum Opaque 1 1s
harbor-harbor-core Opaque 7 1s
harbor-harbor-database Opaque 1 1s
harbor-harbor-jobservice Opaque 1 1s
harbor-harbor-registry Opaque 2 1s==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
harbor NodePort 10.1.42.97 <none> 80:30002/TCP,4443:30004/TCP 1s
harbor-harbor-chartmuseum ClusterIP 10.1.29.63 <none> 80/TCP 1s
harbor-harbor-clair ClusterIP 10.1.213.52 <none> 6060/TCP,6061/TCP 1s
harbor-harbor-core ClusterIP 10.1.42.246 <none> 80/TCP 1s
harbor-harbor-database ClusterIP 10.1.237.0 <none> 5432/TCP 1s
harbor-harbor-jobservice ClusterIP 10.1.77.55 <none> 80/TCP 1s
harbor-harbor-notary-server ClusterIP 10.1.254.26 <none> 4443/TCP 1s
harbor-harbor-notary-signer ClusterIP 10.1.16.142 <none> 7899/TCP 1s
harbor-harbor-portal ClusterIP 10.1.231.103 <none> 80/TCP 1s
harbor-harbor-redis ClusterIP 10.1.117.105 <none> 6379/TCP 1s
harbor-harbor-registry ClusterIP 10.1.40.234 <none> 5000/TCP,8080/TCP 1s==> v1/StatefulSet
NAME READY AGE
harbor-harbor-database 0/1 1s
harbor-harbor-redis 0/1 0s==> v1beta1/Deployment
NAME READY UP-TO-DATE AVAILABLE AGE
harbor-harbor-nginx 0/1 0 0 1sNOTES:
Please wait for several minutes for Harbor deployment to complete.
Then you should be able to visit the Harbor portal at https://core.harbor.domain.
For more details, please visit https://github.com/goharbor/harbor.
下面进k8s管理页面看一下状态
持久化卷声明全部成功了
每个个持久化卷声明都绑定了一个卷
目前harbor部署成功了, 怎么访问它的服务呢?
回想一个暴露服务的四种方式
The way how to expose the service: ingress
, clusterIP
, nodePort
or loadBalancer
我们使用的是expose.type=nodePort
这个时候去服务看端口映射
http访问端口应该是 30002
http://192.168.220.128:30002/harbor/sign-in?redirect_url=%2Fharbor%2Fprojects
默认账号 admin ,密码 Harbor12345
这个端口我们在官方文档[https://github.com/goharbor/harbor-helm]的默认值里也能找到
成功登入并出现Helm Charts 标签
下面记录一下使用过程
既然有这么好的工具来存储管理charts, 那么如何上传及使用?
第一步得找repo的地址找出来 , 网上看到的都是非常简单, 直接把地址写出来,可是我写的却用不了
左下角有API控制中心,可以看到api的网址 http://192.168.220.128:30002/devcenter
这个接口不错,可以用来调用
如何找到网址,与其在网上搜索不如去官网看看, 下面查看官网
git hub上面没有找到有价值的信息
在网上找到类似的写法
helm repo add myrepo http://192.168.220.128:30002/chartrepo/helm
chartrepo 是固定的, helm是我定义的项目名, 可以成功加进去
可以搜索到上传到 harbor helm项目下的mysql
下面开始演练push, 需要提交安装 helm push
尝试命令 helm plugin install https://github.com/chartmuseum/helm-push
安装完成后尝试 push, 不加用户密码无法push的
cd /home/nfs/html
helm push --username=admin --password=Harbor12345 nfs-client-provisioner-1.2.6.tgz myrepo
goharbor harbor-helm 搭建 记录相关推荐
- Docker: vmware企业级docker镜像私服--Harbor的搭建
一 Harbor仓库介绍 Harbor是由VMware公司开源的企业级的Docker Registry管理项目,Harbor主要提供Dcoker Registry管理UI,提供的功能包括:基于角色访问 ...
- helm3安装harbor【搭建NFS,用NFS创建PVC/PV供Harbor持久化,Harbor使用 nodePort 暴露方式提供访问】
一.安装nfs-server k8s-master01信息[提供nfs存储的机器] 公网IP:120.55.76.34 私网IP:172.30.125.99 未来的样子 nfs: server: 17 ...
- 微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建 通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务中心,在此基础之上构 ...
- Monocular 集成harbor helm 仓库
harbor 已经支持了helm 仓库(使用chartmuseum),Monocular 是一个不错的helm 仓库可视化工具 测试Monocular集成harbor 私服功能 使用docker-c ...
- Docker镜像仓库Harbor之搭建及配置
Docker镜像仓库Harbor之搭建及配置 1.Harbor 介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署 ...
- docker registry v2与harbor的搭建
docker的仓库 1 registry的安装 docker的仓库我们可以使用docker自带的registry,安装起来很简单,但是可能有点使用起来不是很方便.没有图形化. 开始安装 1 使用镜像加 ...
- TensorRT 环境搭建记录
TensorRT 环境搭建记录 文章目录 TensorRT 环境搭建记录 1.TensorRT介绍 2.使用TensorRT总目标 3.Centos下TensorRT环境搭建(Ubuntu一样) 4. ...
- 极简darknet环境搭建记录
<极简darknet环境搭建记录> darknet的环境搭建已经非常简单了,但是偶尔的一点小坑,可能会浪费一些时间,比如编译的时候使用CUDA报错,或者没找到OpenCV-简单记录一下 ...
- MIT Mini Cheetah–开源代码仿真环境搭建记录(Ubuntu20.04)
MIT Mini Cheetah–开源代码仿真环境搭建记录(Ubuntu20.04) 一.安装依赖包 sudo apt install mesa-common-dev freeglut3-dev co ...
- 机器人搭建记录 yobot(LinuxWindows手动搭建)
机器人搭建记录 yobot(Linux&Windows手动搭建) 前段时间又手动把PCR机器人自己搭建了一下. 因为某些不可控制的因素酷Q暂时停运了, 我发现开发人员采用了CQHTTP来代替酷 ...
最新文章
- java复制两个对象报异常_Java中复制两个不同类的对象的属性
- 用matlab做一个有刻度的网格,已知45个点X Y Z的坐标值已知,如何用matlab画出网格图,另外每个小方格里带颜色 - 程序语言 - 小木虫 - 学术 科研 互动社区...
- Data Guard出现gap sequence修复
- class没有发布到tomcat_总在说SpringBoot内置了tomcat启动,那它的原理你说的清楚吗?
- php 派生类 构造,C++派生类的构造函数和析构函数
- Mycat - 实现数据库的读写分离与高可用
- 对话框控件访问七种方式
- 关于运行程序路径的更改
- 纳米机器人驱动技术提速十万倍
- python-26-字典:当索引不好用时
- 电脑PHP动画制作画板,涂鸦板简单实现 Html5编写属于自己的画画板
- [SYZOJ279]滑♂稽♂树
- 一道小学数学问题的编程解法
- 微信小程序授权之getuserInfo
- Redis使用说明书(Windows)
- 苹果数据泄漏:内鬼频出,这是库克的错吗?
- (转)SCJP 认证考试指南
- java邮件开发--电子邮件基础
- magical_spider远程采集方案
- 对口升学计算机考试,对口升学信息技术(计算机)类2017年专业课考试大纲