首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >集成Harbor镜像仓库(HTTPS)

集成Harbor镜像仓库(HTTPS)

作者头像
Criss@陈磊
发布于 2019-08-01 11:20:15
发布于 2019-08-01 11:20:15
2K0
举报
文章被收录于专栏:测试技术圈测试技术圈

一、下拉镜像

Harbor主页在:https://vmware.github.io/harbor/,Harbor是由Vmware中国团队开发并开源的Docker镜像仓库

点击“INSTALL GUIDE OFHARBOR“链接到github。

安装方式非常简便,https://github.com/vmware/harbor/releases页面选择要下载的安装包。有在线安装与离线安装两类可选,建议先在线安装实验一次(离线安装是把依赖的镜像数下载下来)。

比如下载了harbor-online-installer-v1.1.2.tgz,

wgethttps://github.com/vmware/harbor/releases/download/v1.1.2/harbor-online-installer-v1.1.2.tgz

解压它:tar xvf harbor-online-installer-v1.1.2.tgz,进入解压后的目录:

在线安装时在此步并不下拉镜像,在下面的启动部分才开始下拉镜像。

二、配置

  1. 配置harbor.cfg。

重点关注下面几项:

hostname = reg.myhub.comui_url_protocol = httpsssl_cert = /root/cert/reg.myhub.com.crtssl_cert_key = /root/cert/reg.myhub.com.keyharbor_admin_password = Harbor12345

hostname =reg.myhub.com就是你Harbor主机的hostname,也可以是IP;

ui_url_protocol=https,指定走https协议;

ssl_cert =/root/cert/reg.myhub.com.crt

ssl_cert_key =/root/cert/reg.myhub.com.key 指定证书地址,如果是内网就自己生成证书,公网用就购买证书吧。

harbor_admin_password = Harbor12345 指定你登陆Harbor的管理员密码,当然是建议你改一下,不然大家都知道这个密码了。

2 证书配置

由于咱们配置了证书,内网咱们自己生成证书。

创建证书目录:

mkdir –p /root/cert/

进入 / root /cert目录,创建CA认证:

1 创建CA证书openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt2 生成证书签名请求openssl req -newkey rsa:4096 -nodes -sha256 -keyout reg.myhub.com.key -out reg.myhub.com.csr3 生成主机证书openssl x509 -req -days 365 -in reg.myhub.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out reg.myhub.com.crt如果想用IP访问就做如下操作: echo subjectAltName = IP:192.168.4.101 > extfile.cnf openssl x509 -req -days 365 -in reg.myhub.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out reg.myhub.com.com.crt4 拷贝证书到客户端cp ca.crt /etc/docker/certs.d/reg.myhub.com/ca.crt

如果机器要通过docker loginreg.myhub.com登陆仓库,需要cp ca.crt /etc/docker/certs.d/reg.myhub.com/ca.crt。/etc/docker/certs.d/reg.myhub.com/目录不存在时自己创建,注意是复制ca.crt,不是reg.myhub.com.crt。

三、启动容器

在harbor目录:

./install

一切顺利可以看到

docker ps可以看到有7个容器

Proxy:Harbor 的 registry,UI, token 等服务,通过一个前置的反向代理统一接收浏览器、Docker 客户端的请求,并将请求转发给后端不同的服务。

Registry:负责储存 Docker 镜像,并处理 dockerpush/pull 命令。由于我们要对用户进行访问控制,即不同用户对 Docker image 有不同的读写权限,Registry 会指向一个 token 服务,强制用户的每次 docker pull/push 请求都要携带一个合法的 token, Registry 会通过公钥对 token 进行解密验证。

Coreservices:这是 Harbor 的核心功能,主要提供以下服务:

UI:提供图形化界面,帮助用户管理 registry 上的镜像(image),并对用户进行授权;

webhook:为了及时获取registry 上 image 状态变化的情况,在 Registry 上配置 webhook,把状态变化传递给 UI 模块;

token 服务:负责根据用户权限给每个 docker push/pull 命令签发 token。Docker 客户端向Registry 服务发起的请求,如果不包含 token,会被重定向到这里,获得 token 后再重新向 Registry进行请求;

Database:为 coreservices 提供数据库服务,负责储存用户权限、审计日志、Docker image 分组信息等数据。

Log collector:为了帮助监控 Harbor 运行,负责收集其他组件的 log,供日后进行分析。各个组件之间的关系如下图所示:

通过https://reg.myhub.com进行访问,如果你是在Window机器上访问时无法解析reg.myhub.com,请在hosts中加一行配置:

[ip] reg.myhub.com

docker登陆:

四、修改默认的https端口

默认Https端口是443,如果你想修改访问端口。修改三个文件:

Harbor目录下的docker-compose.yml文件:

主要是红色圈住部分,8088是Http访问端口,8443是Https访问端口,80是nginx的默认端口,443是nginx默认的https访问端口。

common/templates/nginx/nginx.https.conf,此文件作为harbor配置模板,我们修改如下部分:

指定转发的https端口。

common/templates/registry/config.yml 文件,修改如下:

加上一个端口,默认是443。

然后再一次./install。会删除先前的配置,重新配置,然后启动Harhor相关的容器。

访问http://reg.myhub.com:8088时自动定向到https://reg.myhub.com:8443。

此时我们用docker login reg.myhub.com:8443登陆时会报错,需要在登陆的机器上加上证书,路径是

/etc/docker/certs.d/reg.myhub.com:8433/ca.crt。先前咱们的路径是/etc/docker/certs.d/reg.myhub.com,由于端口变了此路径要随之变化。

五、集成Harbro到Rancher

INFRASTRUCTURE-Registries中添加一个注册,Rancher会读取此配置。

前面咱们配置的Https端口是8443,在此配置如下:

如果Harbor admin密码没修改就填写Harbor12345。

如果你不修443端口为8443,在此就不用设置端口,直接https://reg.myhub.com。

如果你不想在此配置镜像仓库的访问账号,你可以修改Docker的启动参数,可以参考官网:

https://docs.docker.com/engine/reference/commandline/dockerd/

使用--registry-mirror指定镜像仓库地址。

也可以修改/etc/docker/daemon.json文件(与版本有关,我使用的是docker1.13版本),加入registry-mirrors的地址,然后重启docker(servicedocker restart)。

{ "registry-mirrors": ["https://192.168.4.101:8443"]}

六、测试连通

Shell容器打一个镜像tag,然后上传到reg.myhub.com:8443。

1 从官方下载一个nginx镜像:docker pull nginx

2 Harbor仓库中建立一个devops项目,并且设置为公开。

3 打一个tag:

docker tag nginx:latest reg.myhub.com:8443/devops/nginx:0.1

4 上传些镜像到reg.myhub.com:8443仓库:

docker push reg.myhub.com:8443/devops/nginx:0.1

5 Rancher中建立容器:

有人可能不喜欢有端口(8443)在地址栏,在镜像连接串中,你可以保持默认的443端口。

Harbor现在已经加入到了Rancher的应用商店,所以还可以直接在Rancher Catalog中加入Harbor。

在Catalog中搜索Harbor

View Details:

其中harbor-host=192.168.4.102,habor-lb-host=192.168.4.102是label,需要在Host中进行配置。

配置完成后提交,Rancher帮助建立一个名为project-harbor的栈,harbor-lb是Rancher提供的Haproxy代理,proxy是Harbor自带的nginx代理。

登陆密码默认是Vmware123!。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 质问 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
9.opengl光照-漫反射贴图
现实世界中,物体的材质通常不止一种,比如汽车有车壳、轮胎、窗户,每一种材质都会有漫反射和环境光颜色。
公号sumsmile
2020/06/19
1.3K0
9.opengl光照-漫反射贴图
24.opengl高级光照-Blinn-Phong
冯氏光照在逼近真实光照和性能之间做了很好的平衡,解决了绝大部分场景的需求,也存在一些细节问题。这一章节讲Blinn-Phong通过对冯氏光照做的一些优化。
公号sumsmile
2020/07/15
1K0
22.opengl高级-实例化
绘制有共同特征,或者按照一定规则变化的图形阵列,如果挨个按照普通流程来绘制:绑定VAO、绑定纹理、设置uniform-->调用glDrawArrays(GL_TRIANGLES, 0, amount_of_vertices)性能上会比较差,opengl渲染管线流程中,CPU<-->GPU数据通信是很大的开销。
公号sumsmile
2020/07/14
8160
21.opengl高级-几何着色器
几何着色器可以在顶点发送到着色器之前随意变换。可以这么理解:顶点着色器是接收属性,一般不做过多处理,保持原数据,算是第一层接口层;片元着色器一般处理color;如果想做些特殊处理,通过在中间加一层几何着色器把流程拆碎,分工更细致,达到工程代码高内聚低耦合,拓展性更合理。涉及的知识点不多,下面直接通过实例来说明几何着色器的使用原理
公号sumsmile
2020/07/14
1.2K0
30.opengl高级光照-HDR
HDR:High Dynamic Range, 高动态范围 LDR: Low Dynamic Range, 低动态范围
公号sumsmile
2020/08/11
1.4K0
30.opengl高级光照-HDR
35.opengl PBR-光照
这一章节就是把PBR-理论用代码实现一遍,其中球体的绘制参考一章:opengl-球体的绘制。
公号sumsmile
2020/08/28
6180
35.opengl PBR-光照
25.opengl高级光照-Gamma校正
简单理解:人对光强度的感知是非线性的。亮度的范围如果是[0,1],0是黑色,1是纯白色,那么0.5应该代表的是中间灰色吗?NO!!人能感知到的中间灰度值是亮度为0.2左右的光强。
公号sumsmile
2020/07/15
9530
38.opengl-字体渲染
早期的文本渲染,是将需要的字符集放到一个大纹理中,这个纹理称为“位图字体”,渲染某个字符时,通过查找坐标,找到该字符对应的区域并渲染出来,再启动混合,让字符纹理的背景保持透明,非常容易理解。
公号sumsmile
2020/10/10
1.9K0
38.opengl-字体渲染
14.opengl高级-模板测试
1.3 stencil test在graphics pipeline里面的位置,模板测试在深度测试之前
公号sumsmile
2020/06/28
1.2K0
14.opengl高级-模板测试
32.opengl高级光照-延迟着色法
之前的章节,渲染流程从前往后,每个形状依次绘制,简单的场景这是没有问题的,而且很好理解。如果绘制复杂的场景,物体数量很大,这么做对性能消耗很大,“延迟着色法”就是针对超多元素的场景渲染的优化。
公号sumsmile
2020/08/11
1.3K0
32.opengl高级光照-延迟着色法
26.opengl高级光照-阴影映射
涉及的代码不少,其实逻辑不复杂,参考原文和代码: learnopengl-阴影映射 learnopengl-阴影映射-代码
公号sumsmile
2020/07/16
1.1K0
29.opengl高级光照-视差贴图
上一篇法线贴图使用了法线纹理,通过法线的变化来控制漫反射和镜面反射的强度,加强了纹理渲染的层次感,明暗渐变更符合实际情况。视差贴图在法线贴图之上,增加物体表面的凹凸感。
公号sumsmile
2020/07/28
9750
29.opengl高级光照-视差贴图
27.opengl高级光照-点光源阴影
接上一篇继续,实际中的光源几乎不会是平行光,点光比较多。点光的阴影生成原理和阴影映射基本相同,区别是阴影映射使用一张2D图作为深度缓存,点光照射是6个面,需要6个面的纹理来存储深度值
公号sumsmile
2020/07/21
1.4K0
27.opengl高级光照-点光源阴影
31.opengl高级光照-泛光bloom
bloom技术模拟现实场景中高亮光照效果,通过对光照增加模糊,形成一圈泛光,增强光照的辐射。
公号sumsmile
2020/08/11
1.3K0
31.opengl高级光照-泛光bloom
28.opengl高级光照-法线贴图
为了增加渲染的真实感,图片纹理对每个片段增加法线,渲染时根据不同的法线计算独立的光照效果。
公号sumsmile
2020/07/21
1.2K0
28.opengl高级光照-法线贴图
18.opengl高级-立方体贴图
立方体贴图在《视觉计算基础》一书中,第14章的环境贴图中有讲到,常见的环境贴图有立方体环境贴图和球体环境贴图,根据实际场景来区分使用,比如你想创建一个四四方方的房间环境,就用立方体贴图。原理也不复杂,可以根据相机视角映射到对应的纹理像素上。
公号sumsmile
2020/07/13
1.1K0
18.opengl高级-立方体贴图
opengl光照-颜色/基础光照
glEnableVertexAttribArray的作用解释: 默认情况下,出于性能考虑,所有顶点着色器的属性(Attribute)变量都是关闭的,意味着数据在着色器端是不可见的,哪怕数据已经上传到GPU,由glEnableVertexAttribArray启用指定属性,才可在顶点着色器中访问逐顶点的属性数据。 glVertexAttribPointer或VBO只是建立CPU和GPU之间的逻辑连接,从而实现了CPU数据上传至GPU。但是,数据在GPU端是否可见,即,着色器能否读取到数据,由是否启用
公号sumsmile
2020/06/16
6470
CG-Assignment1
Assimp能够导入很多种不同的模型文件格式,它会将所有的模型数据加载至Assimp的通用数据结构中。当Assimp加载完模型之后,就能够从Assimp的数据结构中提取所需的所有数据。
alanzeng
2025/01/14
1710
CG-Assignment1
17.opengl高级-帧缓冲(1)
1.3. check帧缓冲状态(没有深入理解,具体需要检测哪些数据),后面的操作渲染到当前帧缓冲中,即离屏渲染(Off-screen Rendering),窗口上看不到任何变化
公号sumsmile
2020/07/10
2K0
17.opengl高级-帧缓冲(1)
【OpenGL】基础光照
现实世界中的光照是极其复杂,难以计算的,因此OpenGL的光照使用的是简化的模型,其中一个模型被称为冯氏光照模型(Phong Lighting Model)。
六月丶
2022/12/26
9421
【OpenGL】基础光照
相关推荐
9.opengl光照-漫反射贴图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档