1、部署Rancher2.x
(1)拉取镜像
docker pull rancher/rancher:v2.2.8
(2)创建映射卷
mkdir -p /opt/docker/rancher/cni
mkdir -p /opt/docker/rancher/kubelet
mkdir -p /opt/docker/rancher/home
mkdir -p /opt/docker/rancher/log
(3)运行容器
docker run --privileged -d --restart=unless-stopped -p 8888:80 -p 8443:443 \
-v /opt/docker/rancher/cni:/var/lib/cni \
-v /opt/docker/rancher/kubelet:/var/lib/kubelet \
-v /opt/docker/rancher/home:/var/lib/rancher \
-v /opt/docker/rancher/log:/var/log/log \
--name rancher -e JAVA_OPTS="-Xmx1024m" rancher/rancher:v2.4.8
2、创建集群
点击添加集群按钮
选择自定义
输入集群名称
选择每个主机所需角色
注意:若有公网IP则必填,节点名称也必填,内网IP也必填
将对应链接复制到对应主机上运行即可,等待安装完成。
安装完成!
3、部署Gitlab,若使用在线的Gitlab则可忽略。
镜像名称:beginor/gitlab-ce:11.3.0-ce.0 (中文版)
映射主机路径
mkdir -p /opt/docker/gitlab/config mkdir -p /opt/docker/gitlab/logs mkdir -p /opt/docker/gitlab/data
对应容器映射路径
–v /opt/docker/gitlab/config:/etc/gitlab
–v /opt/docker/gitlab/logs :/var/log/gitlab
–v /opt/docker/gitlab/data:/var/opt/gitlab
4、部署docker私有仓库
参考Docker搭建私有仓库Registry.note命令部署自行在Rancher2.4.8上部署工作负载
5、部署maven私有仓库nexus
参考Docker搭建Mavne私有仓库.note命令部署自行在Rancher2.4.8上部署工作负载
5、打maven镜像
(1)创建maven目录
mkdir maven
(2)进入目录
cd maven
(3)创建Dockerfile文件
touch Dockerfile
(4)编辑Dockerfile文件
vi Dockerfile
内容如下
FROM maven:3.6.0-jdk-8-alpine COPY settings.xml /usr/share/maven/conf/
(5)创建settings.xml文件
内容如下
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>nexus-releases</id>
<username>用户名</username> #用户名和密码根据自己配置的来修改
<password>密码</password>
</server>
</servers>
<mirrors>
<mirror>
<id>nexus-releases</id>
<mirrorOf>*</mirrorOf> #路径根据自己配置的来修改
<url>http://ip:端口/repository/maven-releases/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus-releases</id>
<url>http://nexus-releases</url>
<releases><enabled>true</enabled></releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus-releases</id>
<url>http://nexus-releases</url>
<releases><enabled>true</enabled></releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
(6)制作镜像
docker build -t 镜像名称:1.0.0 .
(7)上传到私有仓库
docker tag xxxxxx 私有仓库地址/镜像名称:1.0.0
docker push xxxxxx 私有仓库地址/镜像名称:1.0.0
6、创建流水线
进入集群应用界面,点击菜单:资源->流水线->设置代码库
点击认证&同步代码库
进入后选择Gitllab,然后需要在Gitlab里添加应用,把rancher的验证地址填好如图
然后会生成app_id和密码,将其填入rancher配置即可。若有代码库可查看到如图中信息,点击开启即打开流水线
点击编辑配置
上图为配置好的流水线步骤,分5步:
第一步:拉取代码,创建流水线时自带,不用创建
第二步:对拉取下的项目代码进行编译,需使用maven镜像(参考5、打maven镜像)
第三步:为了避免下次部署是端口及名称冲突,我选择先把服务删除(通过API升级方式暂未研究明白)
API可点击工作负载最右边操作按钮查看API,调用API需要用到访问密钥,需要自行添加
第四步:构建镜像及发布到私有仓库
需要编写Dockerfile文件,文件内容如下
镜像仓库选择需要先在资源->密文,点击镜像库凭证列表导航出添加镜像库凭证
没有设置登录认证的话不用填写用户名及密码。
注:若私有仓库没有使用https,需要自行修改流水线配置文件,在构建镜像节点出添加PLUGIN_DEBUG和PLUGIN_INSECURE参数。
第五步:部署服务,需要编写deployment.yaml(可以先部署服务,然后下载yaml,多余的可自行删除)。
完成后点击保存即可点击运行流水线。
运行完成后会自动部署服务!