开源一夏 |【云原生】DevOps(五):集成 Harbor
@TOC
前言:
📢📢📢当下云原生火爆全网,云原生充分利用了云计算弹性、敏捷、资源池和服务化特性,改变云端应用的设计、开发、部署和运行模式,为我们大大提供了便利,本篇文章将带大家走进云原生的世界,揭开它的神秘面纱。💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
一、Harbor 介绍
前面在部署项目时,我们主要采用 Jenkins 推送 jar 包到指定服务器,再通过脚本命令让目标服务器对当前 jar 进行部署,这种方式在项目较多时,每个目标服务器都需要将 jar 包制作成自定义镜像再通过 docker 进行启动,重复操作比较多,会降低项目部署时间。
我们可以通过 Harbor 作为私有的 Docker 镜像仓库。让 Jenkins 统一将项目打包并制作成 Docker 镜像发布到 Harbor 仓库中,只需要通知目标服务,让目标服务统一去 Harbor 仓库上拉取镜像并在本地部署即可。
Docker 官方提供了 Registry 镜像仓库,但是 Registry 的功能相对简陋。Harbor 是 VMware 公司提供的一款镜像仓库,提供了权限控制、分布式发布、强大的安全扫描与审查机制等功能
二、 Harbor 安装
这里采用原生的方式安装 Harbor。
下载 Harbor 安装包:https://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.3.4.tgz
拖拽到 Linux 并解压:
修改 Harbor 配置文件:
首先复制一份 harbor.yml 配置
编辑 harbor.yml 配置文件
启动 Harbor
登录 Harbor
首页信息
三、 Harbor 使用方式
Harbor 作为镜像仓库,主要的交互方式就是将镜像上传到 Harbor 上,以及从 Harbor 上下载指定镜像
在传输镜像前,可以先使用 Harbor 提供的权限管理,将项目设置为私有项目,并对不同用户设置不同角色,从而更方便管理镜像。
1. 添加用户构建项目
创建用户
构建项目(设置为私有)
给项目追加用户
切换测试用户
2. 发布镜像到 Harbor
修改镜像名称
名称要求:harbor地址/项目名/镜像名:版本
修改 daemon.json,支持 Docker 仓库,并重启 Docker
设置登录仓库信息
推送镜像到 Harbor
|
3. 从 Harbor 拉取镜像 ls
跟传统方式一样,不过需要先配置/etc/docker/daemon.json文件
4. Jenkins 容器使用宿主机 Docker
构建镜像和发布镜像到 harbor 都需要使用到 docker 命令。而在 Jenkins 容器内部安装 Docker 官方推荐直接采用宿主机带的 Docker 即可。
设置 Jenkins 容器使用宿主机 Docker
设置宿主机 docker.sock 权限:
添加数据卷
5. 添加构建操作
6. 编写部署脚本
部署项目需要通过 Publish Over SSH 插件,让目标服务器执行命令。为了方便一次性实现拉取镜像和启动的命令,推荐采用脚本文件的方式。
添加脚本文件到目标服务器,再通过 Publish Over SSH 插件让目标服务器执行脚本即可。
编写脚本文件,添加到目标服务器
并设置权限为可执行
评论