公司测试环境使用了 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/
构建成功

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐