本文共 3249 字,大约阅读时间需要 10 分钟。
本文实践了基于k8s、docker、jenkins构建springboot服务
因为各种原因,文中docker私有仓库和k8s的安装命令不可用,构建脚本需要修改 环境准备和修改后的脚本请看下文, 最终构建成功springboot的持续集成环境。docker安装
docker搭建私有仓库 k8s环境准备 jenkins安装 springboot测试项目地址节点介绍
192.168.199.131 docker私有仓库节点 192.168.199.137 k8s节点 192.168.199.138 jenkins 节点需要在三个节点上增加域名信息
vi /etc/hosts 192.168.199.131 node.docker.registry 192.168.199.137 node.k8s 192.168.199.138 node.jenkins补充命令
开机自动启动Docker sudo chkconfig docker on进入k8s节点
# cd /data/boot# vi tmp.yaml
tmp.yaml的内容为
apiVersion: apps/v1kind: Deploymentmetadata: name: data-lake-deploymentspec: selector: matchLabels: app: data-lake #全局标识 replicas: 1 template: metadata: labels: app: data-lake spec: hostAliases: - ip: "10.108.211.000" hostnames: - "tsl.com" containers: - name: data-lake #容器名 image: node.docker.registry:5000/waylau/docker-spring-boot #换成自己的镜像地址 ports: - name: link2 containerPort: 32111 #需要暴露的端口 protocol: TCP---apiVersion: v1kind: Servicemetadata: name: data-lake-servicespec: type: NodePort selector: app: data-lake ports: #设置外部访问 - name: link1 port: 8080 #容器内端口 nodePort: 32111 #外部访问端口 相当于docker的-p 32000:8080
1、任务名称:springboottest
2、任务类型:自由风格
3、创建github访问Credential,
Credential类型:username with password,写 你的github帐号密码,5、创建构建脚本
tag=$( date +'%Y%m%d%H%M' )echo $tag >version_springcloudtest.txtecho $tag
6、创建ssh server
系统管理-〉系统设置菜单-〉publish over ssh 需要创建2个ssh帐号, k8s节点的帐号node.k8s docker私有仓库节点帐号node.docker.registry7、增加构建步骤-Send files or execute commands over SSH
SSH-Server选node.docker.registry Transfer Set:Source files 值为version_springcloudtest.txt Exec command:version_file=version_springcloudtest.txttag=$( cat $version_file )dockerhost=192.168.199.131cd /opt/dockerrm -rf * git clone https://github.com/bones4/docker-demos.gitcd /opt/docker/docker-demos/samples/spring-bootmvn clean packagecd /opt/docker/docker-demos/samples/spring-boot/src/main/dockercp Dockerfile /opt/docker/docker-demos/samples/spring-boot/targetcd /opt/docker/docker-demos/samples/spring-boot/targetdocker build -t waylau/docker-spring-boot:$tag .docker tag waylau/docker-spring-boot:$tag $dockerhost:5000/waylau/docker-spring-boot:$tagdocker push $dockerhost:5000/waylau/docker-spring-boot:$tag
8、增加构建步骤-Send files or execute commands over SSH
SSH-Server选node.k8s Transfer Set:Source files 值为version_springcloudtest.txt Exec command:version_file=version_springcloudtest.txttag=$( cat $version_file )dockerhost=192.168.199.131kubectl delete deployment data-lake-deploymentkubectl delete svc data-lake-service cd /data/boot/rm -rf app.yamlcp tmp.yaml app.yamlp_new_version=docker-spring-boot:$tagecho $p_new_versionsed -i "s/docker-spring-boot/$p_new_version/" app.yamlsed -i "s/node.docker.registry/$dockerhost/" app.yamlkubectl create -f /data/boot/app.yaml
1、在gitlub上修改代码并提交
2、重新执行构建 3、浏览器中查看测试站点,发现已更新到最新版。如果把相关环境迁移到其他的局域网内
1、装私人仓库, 1、设hosts, 3、设仓库和k8s节点的/etc/docker/daemon.json,增加镜像和https白名单vi /etc/docker/daemon.json{ "registry-mirrors": ["https://registry.docker-cn.com"], "insecure-registries":["192.168.199.131:5000"]}
4、检查selinux是否禁用,如果没禁用,报错500,
将selinux禁用#setenforce 0#getenforce
转载地址:http://sthwi.baihongyu.com/