• 150455

    文章

  • 1048

    评论

  • 13

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

k8s之-企业级docker镜像仓库Harbor


Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBA)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能功能

Harbor主要由6个组件构成

Proxy:Harbor的registry, UI, token等服务,通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务。
Registry: 负责储存Docker镜像,并处理docker push/pull 命令。由于我们要对用户进行访问控制,即不同用户对Docker image有不同的读写权限,Registry会指向一个token服务,强制用户的每次docker pull/push请求都要携带一个合法的token, Registry会通过公钥对token 进行解密验证。
Core services: 这是Harbor的核心功能,主要提供以下服务:
UI提供图形化界面,帮助用户管理registry上的镜像(image), 并对用户进行授权。
webhook:为了及时获取registry 上image状态变化的情况, 在Registry上配置webhook,把状态变化传递给UI模块。
token 服务:负责根据用户权限给每个docker push/pull命令签发token. Docker 客户端向Regiøstry服务发起的请求,如果不包含token,会被重定向到这里,获得token后再重新向Registry进行请求。
Database:为core services提供数据库服务,负责储存用户权限、审计日志、Docker image分组信息等数据。
Job Services:提供镜像远程复制功能,可以把本地镜像同步到其他Harbor实例中。
Log collector:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。

开始部署:这里在master上部署(线上一般独立部署)

Harbor的每个组件都是以Docker容器的形式构建的,通常采用Docker Compose来对它进行部署。用于部署Harbor的Docker Compose模板位于 harbor/docker-compose.yml

1.安装docker:略

2.安装docker-compose(有多种方式安装这里采用二进制方式)

a.下载二进制文件

curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

b.赋予二进制文件可执行权限

chmod +x /usr/local/bin/docker-compose

c.安装命令补全(可以不用安装)

yum install bash-completion 
curl -L https://raw.githubusercontent.com/docker/compose/1.16.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

d.测试是否安装成功

# docker-compose --version
docker-compose version 1.16.1, build 6d1ac21

3.安装Harbor

wget -P /usr/local/src/ https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-online-installer-v1.2.0.tgz
cd /usr/local/src/
tar zxf harbor-online-installer-v1.2.0.tgz  -C /usr/local/
cd /usr/local/harbor/

a.修改配置文件/usr/local/harbor/harbor.cfg

vim /usr/local/harbor/harbor.cfg
hostname = rgs.mtmath.com
#邮箱配置
email_server = smtp.qq.com
email_server_port = 25
email_username = w1335234172@qq.com
email_password =abcdefg
email_from = UnixFBI <rgs@mintmath.com>
email_ssl = false
#禁止用户注册
self_registration = off
#设置只有管理员可以创建项目
project_creation_restriction = adminonly

b.执行脚本开始部署

/usr/local/harbor/install.sh(此脚本会自动拉去镜像进行部署)

c.成功后查看容器:docker-compose  ps

容器简单说明:
nginx:nginx负责流量转发和安全验证,对外提供的流量都是从nginx中转,所以开放https的443端口,它将流量分发到后端的ui和正在docker镜像存储的docker registry。
harbor-jobservice:harbor-jobservice 是harbor的job管理模块,job在harbor里面主要是为了镜像仓库之前同步使用的;
harbor-ui:harbor-ui是web管理页面,主要是前端的页面和后端CURD的接口;
registry:registry就是docker原生的仓库,负责保存镜像。
harbor-adminserver:harbor-adminserver是harbor系统管理接口,可以修改系统配置以及获取系统信息。
这几个容器通过Docker link的形式连接在一起,在容器之间通过容器名字互相访问。对终端用户而言,只需要暴露proxy (即Nginx)的服务端口。
harbor-db:harbor-db是harbor的数据库,这里保存了系统的job以及项目、人员权限管理。由于本harbor的认证也是通过数据,在生产环节大多对接到企业的ldap中;
harbor-log:harbor-log是harbor的日志服务,统一管理harbor的日志。通过inspect可以看出容器统一将日志输出的syslog。

d.访问测试:浏览器输入:ip(192.168.0.124)或者我们配置的域名(rgs.mtmath.com) windows访问时请在hosts文件自行添加本地解析。输入用户名密码默认账号密码: admin / Harbor12345

分别创建:mtmath和pyweb两个项目

4. 在node节点进行push推送测试:

a.由于docker默认访问仓库时都是使用的https协议,而我们的仓库配置的是http 不指定仓库地址的情况下推送会报一下错误:

Get https://rgs.mtmath.com/v2/: dial tcp 192.168.0.124:443: connect: connection refused;
解决方法:先修改仓库地址重启docker

[1].修改指定仓库地址/etc/docker/daemon.json
cat > /etc/docker/daemon.json << EOF
{ "insecure-registries":["http://rgs.mtmath.com"] }
EOF
[2].然后重启docker
systemctl  restart docker

b.对本地镜像重新打tag标签

docker tag SOURCE_IMAGE[:TAG] rgs.mtmath.com/mtmath/IMAGE[:TAG]
docker tag rgs.mtmath.com/kubernetes-dashboard-amd64:latest rgs.mtmath.com/mtmath/kubernetes-dashboard-amd64:latest

c.推送该镜像

docker push rgs.mtmath.com/mtmath/IMAGE[:TAG]
docker push rgs.mtmath.com/mtmath/kubernetes-dashboard-amd64:latest

d.推送成功后查看仓库:

删除本地镜像重新pull拉去测试:

docker rmi -f rgs.mtmath.com/mtmath/kubernetes-dashboard-amd64
docker pull rgs.mtmath.com/mtmath/kubernetes-dashboard-amd64


https等其他功能后续再写

695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

6条评论

Loading...
  • anrenyuan1267L

    对我很有用

  • dailianwithout1264L

    这篇文章对我有用多谢。

  • leaddaigua1249L

    希望看到更多优秀文章真心感谢。

  • incidentkemu1246L

    时间就是精饲料,让许多人瘦子的脸变成了月佥,腰变成了月要,腿变成了月退,肚变成了月土。。。只是胸还是胸。。。多谢.再接再厉

  • jiaoyusoutheast1223L

    小偷拿走你的钱包,你抬脚想追,腿却不听命令的时候。真心感谢.倍感珍惜by https://92huayi.com/class/guizhou.html

  • kaoshi1199L

    加油加油感谢博主。织女:别提了,被一帮学雷锋的扶过来的。by https://www.daantu.com/class/liuan.html



发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客