频道栏目
首页 > 资讯 > Linux > 正文

jenkins触发式自动构建tomcat镜像并发布至kubernetes集群

19-02-26        来源:[db:作者]  
收藏   我要投稿

一、制作Dockerfile文件

1.在172.19.2.51上部署

mkdir-pv/opt/git
gitclonehttp://172.19.2.140:18080/lvqingshan/gcgj.git
cd/opt/git/gcgj
scpapp@172.19.2.1:/home/app/portal-tomcat/webapps/portal.war./
scpapp@192.168.37.34:/home/app/portal-tomcat/conf/server.xml./

vimDockerfile
FROMtomcat:7.0.77-jre8		#这里是基础镜像
ADDserver.xml/usr/local/tomcat/conf	#server.xml文件要和Dockerfile再同一目录,这里是替换文件
RUNrm-rf/usr/local/tomcat/webapps/*
COPYportal.war/usr/local/tomcat/webapps/ROOT.war		#portal.war文件要和Dockerfile再同一目录,这里是复制文件
EXPOSE8080		#对外开放端口
CMD["/usr/local/tomcat/bin/catalina.sh","run"]		#启动镜像时执行的命令

2.测试dockerfile是否能正常工作

dockerbuild-tgcgj/portal.
dockerrun-p38080:8080-idtgcgj/portal:latest
gitadd-A
gitcommit
gitpush-uoriginmaster
gitlab账号lvqingshan
密码abcd1234

二、配置登录habor仓库(仓库为172.19.2.139)

1.在192.168.13.45上配置仓库私钥

-----ENDCERTIFICATE-----

2.登录仓库

dockerlogin172.19.2.139
Username:admin
Password:Cmcc@1ot

3.上传镜像测试

在habor上创建gcgj仓库后才能push

dockertaggcgj/portal:latest172.19.2.139/gcgj/portal
dockerlogin-padmin-uCmcc@1ot-e172.19.2.139
dockerpush172.19.2.139/gcgj/portal

三、kubernets文件配置

在kubernetes主节点172.19.2.50上配置

vim/opt/kube-portal/portal-rc1.yaml
apiVersion:v1
kind:ReplicationController
metadata:
name:gcgj-portal
spec:
replicas:2
selector:
	app:portal
template:
	metadata:
	labels:
		app:portal		#加标签
	spec:
	containers:
	-image:172.19.2.139/gcgj/portal:latest		#要发布的镜像
		name:portal
		resources:
		limits:
			cpu:"2"		#pod占用的cpu资源
			memory:2Gi		#pod占用的内存资源
		ports:
		-containerPort:8080		#pod提供的端口
		volumeMounts:
		-mountPath:/usr/local/tomcat/logs		#镜像内要挂载的目录
		name:portal-logs
	volumes:
	-name:portal-logs
		hostPath:
		path:/opt/logs/portal		#映射到本地的目录

vim/opt/kube-portal/portal-svc1.yaml
apiVersion:v1
kind:Service
metadata:
name:gcgj-portal
spec:
ports:
-name:portal-svc
	port:8080
	targetPort:8080
	nodePort:30088		#proxy映射出来的端口
selector:
	app:portal
type:NodePort		#端口类型

四、jenkins配置

1.General中配置参数化构建过程

新增StringParameter

名字:VERSION

默认值:[空]

描述:请输入版本号2.源码管理Git设置
RepositoryURL为http://172.19.2.140:18080/lvqingshan/gcgj.git3.设置Gitlab出现变更自动触发构建

一分钟检测一次gitlab项目是否有变化

*/1****
4

4.Execute shell设置

两种控制版本的方式,当自动触发构建或者版本号为空时使用时间戳作为版本,当填入版本号时使用填入的版本号

imagesid=`dockerimages|grep-igcgj|awk'{print$3}'|head-1`
project=/var/lib/jenkins/jobs/build-docker-router-portal/workspace

if[-z"$VERSION"];then
	VERSION=`date+%Y%m%d%H%M`
fi

echo$VERSION

ifdockerps-a|grep-igcgj;then
dockerrm-fgcgj
fi

if[-z"$imagesid"];then
	echo$imagesid"isnull"
else
	dockerrmi-f$imagesid
fi

dockerbuild-tgcgj/portal:$VERSION$project
dockertaggcgj/portal:$VERSION172.19.2.139/gcgj/portal:$VERSION
dockertaggcgj/portal:$VERSION172.19.2.139/gcgj/portal:latest
dockerlogin-uadmin-pCmcc@1ot172.19.2.139
dockerpush172.19.2.139/gcgj/portal:$VERSION
dockerpush172.19.2.139/gcgj/portal:latest5.ansible-playbook配置

在ansible主机192.168.13.45上配置

vim/home/app/ansible/playbooks/opstest/portal.yaml
-hosts:172.19.2.50
remote_user:app
sudo:yes
tasks:
	-name:关闭原有pod
	shell:kubectldelete-f/opt/kube-portal
	ignore_errors:yes
	-name:启动新pod
	shell:kubectlcreate-f/opt/kube-portal
相关TAG标签
上一篇:HTTP常见状态码简析
下一篇:website网站简介
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站