先本地安装

本地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: ingressclusterIPnodePortor 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 搭建 记录相关推荐

  1. Docker: vmware企业级docker镜像私服--Harbor的搭建

    一 Harbor仓库介绍 Harbor是由VMware公司开源的企业级的Docker Registry管理项目,Harbor主要提供Dcoker Registry管理UI,提供的功能包括:基于角色访问 ...

  2. 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 ...

  3. 微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建

    微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建 通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务中心,在此基础之上构 ...

  4. Monocular 集成harbor helm 仓库

    harbor 已经支持了helm 仓库(使用chartmuseum),Monocular 是一个不错的helm 仓库可视化工具  测试Monocular集成harbor 私服功能 使用docker-c ...

  5. Docker镜像仓库Harbor之搭建及配置

    Docker镜像仓库Harbor之搭建及配置 1.Harbor 介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署 ...

  6. docker registry v2与harbor的搭建

    docker的仓库 1 registry的安装 docker的仓库我们可以使用docker自带的registry,安装起来很简单,但是可能有点使用起来不是很方便.没有图形化. 开始安装 1 使用镜像加 ...

  7. TensorRT 环境搭建记录

    TensorRT 环境搭建记录 文章目录 TensorRT 环境搭建记录 1.TensorRT介绍 2.使用TensorRT总目标 3.Centos下TensorRT环境搭建(Ubuntu一样) 4. ...

  8. 极简darknet环境搭建记录

    <极简darknet环境搭建记录>   darknet的环境搭建已经非常简单了,但是偶尔的一点小坑,可能会浪费一些时间,比如编译的时候使用CUDA报错,或者没找到OpenCV-简单记录一下 ...

  9. MIT Mini Cheetah–开源代码仿真环境搭建记录(Ubuntu20.04)

    MIT Mini Cheetah–开源代码仿真环境搭建记录(Ubuntu20.04) 一.安装依赖包 sudo apt install mesa-common-dev freeglut3-dev co ...

  10. 机器人搭建记录 yobot(LinuxWindows手动搭建)

    机器人搭建记录 yobot(Linux&Windows手动搭建) 前段时间又手动把PCR机器人自己搭建了一下. 因为某些不可控制的因素酷Q暂时停运了, 我发现开发人员采用了CQHTTP来代替酷 ...

最新文章

  1. java复制两个对象报异常_Java中复制两个不同类的对象的属性
  2. 用matlab做一个有刻度的网格,已知45个点X Y Z的坐标值已知,如何用matlab画出网格图,另外每个小方格里带颜色 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  3. Data Guard出现gap sequence修复
  4. class没有发布到tomcat_总在说SpringBoot内置了tomcat启动,那它的原理你说的清楚吗?
  5. php 派生类 构造,C++派生类的构造函数和析构函数
  6. Mycat - 实现数据库的读写分离与高可用
  7. 对话框控件访问七种方式
  8. 关于运行程序路径的更改
  9. 纳米机器人驱动技术提速十万倍
  10. python-26-字典:当索引不好用时
  11. 电脑PHP动画制作画板,涂鸦板简单实现 Html5编写属于自己的画画板
  12. [SYZOJ279]滑♂稽♂树
  13. 一道小学数学问题的编程解法
  14. 微信小程序授权之getuserInfo
  15. Redis使用说明书(Windows)
  16. 苹果数据泄漏:内鬼频出,这是库克的错吗?
  17. (转)SCJP 认证考试指南
  18. java邮件开发--电子邮件基础
  19. magical_spider远程采集方案
  20. 对口升学计算机考试,对口升学信息技术(计算机)类2017年专业课考试大纲

热门文章

  1. eclipse环境变量的配置
  2. wincc 7.4 sp1在win10 下安装环境搭建
  3. Windows 10 KB3124200补丁无法安装的临时解决方案
  4. linux rzsz 安装包,安装rzsz软件包全攻略
  5. LINQ TO SQL 如何进行增删改查
  6. java类的参考文献,太完整了!
  7. 软件管理员密码忘记怎么办?软件密码如何找回?
  8. 纹理——灰度共生矩阵公式及代码
  9. 狂雨小说cms采集规则教程
  10. 如何开发Android安卓APP读写NFC Ntag