jenkins 结合 rancher 部署 k8s 服务
公司测试环境使用了 rancher 来管理 k8s 集群,项目管理使用的是 rancher 的流水线,提交代码到gitlab上面会自动触发构建,但是使用了一段时间后发现还是有很多问题,1.性能不好,失败率很高2.自定义构建步骤很麻烦3.速度很慢感觉rancher 流水线不够灵活,所以在尝试结合jenkins 来部署 rancher 上面的服务。感觉比rancher 流水线要好不少。这里简单介绍一下
公司测试环境使用了 rancher 来管理 k8s 集群,项目管理使用的是 rancher 的流水线,提交代码到gitlab上面会自动触发构建,但是使用了一段时间后发现还是有很多问题,
1.性能不好,失败率很高
2.自定义构建步骤很麻烦
3.速度很慢
感觉rancher 流水线不够灵活,所以在尝试结合jenkins 来部署 rancher 上面的服务。感觉比rancher 流水线要好不少。这里简单介绍一下.
为了方便,rancher jenkins 是在虚拟机中创建的,代码仓库用的是github,镜像仓库用的dockerhub
1. 生成rancher api token
把 Bearer Token: 保存下来
2. 安装rancher-cli
使用上一步骤创建的token 在jenkins 服务器上登录rancher
wget https://releases.rancher.com/cli2/v2.2.0/rancher-linux-amd64-v2.2.0.tar.gz
tar xf rancher-linux-amd64-v2.2.0.tar.gz
mv rancher-v2.2.0/rancher /usr/bin/rancher
rm -rf rancher-v2.2.0/
rancher login https://rancherIp/v3 --token BearerToken
3.安装kubectl client
远程下载
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl
或者百度云下载
链接:https://pan.baidu.com/s/1z73rbbYTjqpGnoJwDqRzZw
提取码:n3s9
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
kubectl version
测试是否可以正常使用
[root@localhost software]# rancher kubectl get node
NAME STATUS ROLES AGE VERSION
localhost Ready controlplane,etcd,worker 6d1h v1.17.14
4.安装jenkins
jenkins实战1-jenkins+maven+git构建项目
5 使用jenkins 创建一个项目mytest
代码是
https://github.com/yangzheng0/mytest.git
构建脚本
version=`date +%Y%m%d%H%M%S`
docker build -t yangzheng123/mytest:$version .
docker push yangzheng123/mytest:$version
docker rmi yangzheng123/mytest:$version
rancher kubectl set image deployment/mytest mytest=yangzheng123/mytest:$version -n default
脚本步骤说明
先构建镜像,然后推送到dockerhub,再使用 rancher kubectl 命令替换k8s集群中的服务的镜像,就可以自动构建服务了。
6 rancher 创建一个服务 mytest
这里的镜像地址是 https://hub.docker.com/repository/docker/yangzheng123/mytest
docker 镜像也可以写成自己仓库的镜像
建好后测试一下
rancher kubectl get deployment/mytest -n default -o yaml
7,jenkins 构建服务
服务自动构建中
访问 ip:port/mytest/
构建成功
更多推荐
所有评论(0)