1.安装配置Harbor

环境rhel 7.6

  • 安装docker,python
  • 安装docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/docker-compose

[root@harbor harbor]# docker-compose version
docker-compose version 1.21., build a133471
docker-py version: 3.3.
CPython version: 3.6.
OpenSSL version: OpenSSL 1.0.1t May
  • 下载harbor

https://github.com/goharbor/harbor/releases

我选择的是harbor-offline-installer-v1.6.2.tgz, 之前 1.5的版本没有镜像了,所以建议选择新一点的。

tar -xvf harbor-offline-installer-v1.6.2.tgz
  • 修改配置harbor.cfg,我就修改了hostname
[root@harbor harbor]# cat harbor.cfg
## Configuration file of Harbor #This attribute is for migrator to detect the version of the .cfg file, DO NOT MODIFY!
_version = 1.6.
#The IP address or hostname to access admin UI and registry service.
#DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname = 192.168.56.107: #The protocol for accessing the UI and token/notification service, by default it is http.
#It can be set to https if ssl is enabled on nginx.
ui_url_protocol = http #Maximum number of job workers in job service
max_job_workers =
  • 修改配置docker-compose.yml,将端口映射修改为8060
    networks:
- harbor
ports:
- :
- :
- :
  • 根据docker-compose.yml中的镜像把镜像下载到本地
[root@harbor ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/openjdk latest 8e7eacedab93 days ago MB
docker.io/goharbor/redis-photon v1.6.2 473bfdd9d245 weeks ago MB
docker.io/goharbor/registry-photon v2.6.2-v1.6.2 62c30cdb384a weeks ago MB
docker.io/goharbor/nginx-photon v1.6.2 c0602500e829 weeks ago MB
docker.io/goharbor/harbor-log v1.6.2 781ee4ceb5d3 weeks ago MB
docker.io/goharbor/harbor-jobservice v1.6.2 3419a2276f96 weeks ago MB
docker.io/goharbor/harbor-ui v1.6.2 66268686bb96 weeks ago MB
docker.io/goharbor/harbor-adminserver v1.6.2 4024440925a4 weeks ago MB
docker.io/goharbor/harbor-db v1.6.2 0ed4186be0d1 weeks ago MB
  • 修改docker配置 /etc/sysconfig/docker,主要是OPTIONS,ADD_REGISTRY,INSECURE_REGISTRY
[root@harbor harbor]# cat /etc/sysconfig/docker
# /etc/sysconfig/docker # Modify these options if you want to change the way the docker daemon runs
OPTIONS='--selinux-enabled=false --log-driver=journald --insecure-registry=192.168.56.107:8060'
if [ -z "${DOCKER_CERT_PATH}" ]; then
DOCKER_CERT_PATH=/etc/docker
fi # Do not add registries in this file anymore. Use /etc/containers/registries.conf
# instead. For more information reference the registries.conf() man page.
ADD_REGISTRY='--add-registry 192.168.56.107:8060'
INSECURE_REGISTRY='--insecure-registry=192.168.56.107:8060'
# Location used for temporary files, such as those created by
# docker load and build operations. Default is /var/lib/docker/tmp
# Can be overriden by setting the following environment variable.
# DOCKER_TMPDIR=/var/tmp # Controls the /etc/cron.daily/docker-logrotate cron job status.
# To disable, uncomment the line below.
# LOGROTATE=false
  • 重启docker服务
systemctl daemon-reload
systemctl restart docker.service
  • 安装
[root@harbor harbor]# ./prepare
Generated and saved secret to file: /data/secretkey
Generated configuration file: ./common/config/nginx/nginx.conf
Generated configuration file: ./common/config/adminserver/env
Generated configuration file: ./common/config/ui/env
Generated configuration file: ./common/config/registry/config.yml
Generated configuration file: ./common/config/db/env
Generated configuration file: ./common/config/jobservice/env
Generated configuration file: ./common/config/jobservice/config.yml
Generated configuration file: ./common/config/log/logrotate.conf
Generated configuration file: ./common/config/registryctl/env
Generated configuration file: ./common/config/ui/app.conf
Generated certificate, key file: ./common/config/ui/private_key.pem, cert file: ./common/config/registry/root.crt
The configuration files are ready, please use docker-compose to start the service.
[root@harbor harbor]# ./install.sh

[Step ]: checking installation environment ...

Note: docker version: 1.13.

Note: docker-compose version: 1.21.

[Step ]: loading Harbor images ...
Loaded image: goharbor/registry-photon:v2.6.2-v1.6.2
0155cb3a636c: Loading layer [==================================================>] 23.38 MB/23.38 MB
62f917db5fed: Loading layer [==================================================>] 12.16 MB/12.16 MB
2e192a070c25: Loading layer [==================================================>] 17.3 MB/17.3 MB
64fa72e486ec: Loading layer [==================================================>] 11.26 kB/11.26 kB
23afd47b0f1a: Loading layer [==================================================>] 3.072 kB/3.072 kB
3fa7415d357e: Loading layer [==================================================>] 29.46 MB/29.46 MB
Loaded image: goharbor/notary-server-photon:v0.5.1-v1.6.2
2f06068ec40a: Loading layer [==================================================>] MB/ MB
d6e5bcc842f3: Loading layer [==================================================>] 10.93 MB/10.93 MB
c272c6b03ae0: Loading layer [==================================================>] 2.048 kB/2.048 kB
7b0653de0007: Loading layer [==================================================>] 48.13 kB/48.13 kB
484f0b8e979d: Loading layer [==================================================>] 3.072 kB/3.072 kB
72004696fb26: Loading layer [==================================================>] 10.98 MB/10.98 MB
  • 验证
[root@harbor harbor]# docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver /harbor/start.sh Up (healthy)
harbor-db /entrypoint.sh postgres Up (healthy) /tcp
harbor-jobservice /harbor/start.sh Up
harbor-log /bin/sh -c /usr/local/bin/ ... Up (healthy) 127.0.0.1:->/tcp
harbor-ui /harbor/start.sh Up (healthy)
nginx nginx -g daemon off; Up (healthy) 0.0.0.0:->/tcp, 0.0.0.0:->/tcp, 0.0.0.0:->/tcp
redis docker-entrypoint.sh redis ... Up /tcp
registry /entrypoint.sh /etc/regist ... Up (healthy) /tcp

登录192.168.56.107:8060, admin/Harbor12345

添加用户,添加项目,然后push镜像验证。

2.Openshift配置

1.需要在每个拉取镜像的节点上配置docker的配置,配置方法参照步骤1的docker配置。

2.修改/etc/origin/master/master-config.yaml配置文件,加入下面这一句

imagePolicyConfig:
internalRegistryHostname: docker-registry.default.svc:
externalRegistryHostname: 192.168.56.107:

3.重新启动master

# master-restart api
# master-restart controllers

在项目中就可以对harbor的公有镜像进行随意拉取和启动了

==============================================================================

openshift相当于一个Harbor的客户端,但是oc自己有一套管理用户权限的机制(可以绑定LDAP),而Harbor自己也有一套管理镜像的权限机制(可以绑定LDAP做认证)

因此这两套机制如何统一联动是个问题。

在原来的interregistry下,每个项目是可以看到自己下面的镜像的

但以相同的路径加入Harbor的镜像明显不再管理之列

而且发现一个bug,通过命令get is的时候发现镜像前全部换成了外部镜像库的地址,不知道是不是我忘了什么地方没有配置

Openshift 和Harbor的集成的更多相关文章

  1. OpenShift和F5的集成手册

    OpenShift和F5的集成步骤,记录如下,如实际操作中有变更会再度编辑修改. 1.整体架构 使用BIG-IP作为Openshift的Router,能实现以下功能: 为Services创建BIG-I ...

  2. 三万字无坑搭建基于Docker+K8S+GitLab/SVN+Jenkins+Harbor持续集成交付环境

    写在前面 最近在 K8S 1.18.2 版本的集群上搭建DevOps环境,期间遇到了各种坑.目前,搭建环境的过程中出现的各种坑均已被填平,特此记录,并分享给大家! 文章和搭建环境所需要的yml文件已收 ...

  3. K8S与harbor的集成

    文章编写在有道云笔记,采用MarkDown编写,迁移太麻烦了,具体链接如下: http://note.youdao.com/noteshare?id=a9d344951e1fbb761ef7e4979 ...

  4. 私有化轻量级持续集成部署方案--06-私有镜像仓库-Harbor

    提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 针对私有镜像仓库的问题,Docker 官方提供了搭建仓库服务的镜像服务:registry,使用此镜像就可以部署私有仓 ...

  5. docker进阶-搭建私有企业级镜像仓库Harbor

    为什么要搭建私有镜像仓库   对于一个刚刚接触Docker的人来说,官方的Docker hub是用于管理公共镜像.既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像.我们 ...

  6. 安装Harbor

    一.安装Harbor 1. Harbor简介 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Dock ...

  7. 搭建Harbor企业级docker仓库

    搭建Harbor企业级docker仓库 一.Harbor简介 1.Harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如 ...

  8. 搭建私有仓库Harbor

    搭建Harbor企业级docker仓库   搭建Harbor企业级docker仓库 一.Harbor简介 1.Harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry ...

  9. VMware Harbor学习

    同时安装Clair和Notary# ./install.sh --with-notary --with-clair 与notary或者Clair一起安装时管理Harbor的生命周期当Harbour与N ...

随机推荐

  1. Scrollify – jQuery全屏滚动插件

    和 fullPage.js 一样,Scrollify 也是一款基于 jQuery 的全屏滚动插件.跟 fullPage.js 相比,Scrollify 更加小巧,压缩后不足 4KB.但功能上不如 fu ...

  2. 洛谷P1099 BZOJ1999 树网的核 [搜索,树的直径]

    洛谷传送门,BZOJ传送门 树网的核 Description 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T为树网(treenetwork),其中V ...

  3. 几何:pick定理详解

    一.概念 假设P的内部有I(P)个格点,边界上有B(P)个格点,则P的面积A(P)为:A(P)=I(P)+B(P)/2-1. 二.说明 Pick定理主要是计算格点多边形(定点全是格点的不自交图形)P的 ...

  4. luoguP3714 [BJOI2017]树的难题 点分治

    以后传数组绝对用指针... 考虑点分治 在点分的时候,把相同的颜色的在一起合并 之后,把不同颜色依次合并 我们可以用单调队列做到单次合并$O(n + m)$ 如果我们按照深度大小来合并,那么由于每次都 ...

  5. GeoIP的使用

    GeoIP介绍: 什么是GepIP ? 所谓GeoIP,就是通过来访者的IP, 定位他的经纬度,国家/地区,省市,甚至街道等位置信息.这里面的技术不算难题,关键在于有个精准 的数据库.有了准确的数据源 ...

  6. Arab Collegiate Programming Contest 2012 J- Math Homework

    思路:由于只有1-6这几个数,而这几个数的最小公倍数是60,所以只需要求出60以内有多少满足条件的数即可. 再就是求出对于给定的n,求出60的倍数.然后就是怎样求的问题了. 首先可以写成如下形式:   ...

  7. hdu 4352 数位dp+nlogn的LIS

    题意:求区间L到R之间的数A满足A的的数位的最长递增序列的长度为K的数的个数. 链接:点我 该题的关键是记录LIS的状态,学习过nlogn解法的同学都知道,我们每次加入的元素要和前面的比对替换,这里就 ...

  8. bzoj1502 simpson求面积

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1502 题解: simpson积分求面积,s = (f(a)+f(b)+4*f(c))/6*Δx ...

  9. bzoj 1911: [Apio2010]特别行动队 -- 斜率优化

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MB Description Input Output Sample Input 4 ...

  10. noip模拟 五子棋

    递推+模拟.在读取数据时,我们建4个图,分别代表这个图中横.纵.左斜右斜的连续长度.例如heng[i][j]代表ij这个点所在的横着一条线的长度. 然后搜索,对于一个空点,如果他的上下都>=4那 ...