4.3 Jenkins构建部署Kubernetes

未匹配的标注

构建任务

流程梳理

当我们推送代码到Gitlab时,Gitlab会主动地通知Jenkins对应的任务,它会通过设置的源码管理去拉取Gitlab上对应地址的代码,然后执行我们预先设置好的构建的脚本(脚本是我们在之前做的构建镜像以及推送到阿里云)。接着再通过我们上面Publish over SSH配置好的信息登陆到Kubernetes的部署节点,最后执行我们后面将会放置在上面的部署脚本进行部署,更新pod

部署脚本

我们进入到部署节点创建我们的部署脚本。
/root/account/deploy/k8s/k8s-deploy.sh

kubectl scale --replicas=0 deployment/svc-account -n go-micro && kubectl scale --replicas=3 deployment/svc-account -

想要触发pod更新,需要部署文件的某些指定位置有被修改过才会触发。生产环境中,我们是通过更改镜像的tag也就是版本号镜像更新,比较简单。这个系列中,我们通过缩小增大pod的副本数量,来达到触发更新pod。

构建

  1. 新建任务
    点击Jenkins->新建任务,创建一个Jenkins任务
    4.3 Jenkins构建部署Kubernetes
  1. General
    填写项目的Gitlab链接以及勾选丢弃旧的构建
    4.3 Jenkins构建部署Kubernetes

  2. 源码管理
    选择Git选项,填写Repositories信息,并创建Gitlab账号密码凭据。
    4.3 Jenkins构建部署Kubernetes
    4.3 Jenkins构建部署Kubernetes

  3. 构建触发器

勾选Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.1.220:8080/project/go-micro

填入相关信息

4.3 Jenkins构建部署Kubernetes

我们拿到上图中,我们可以拿到webhook通知URL以及密钥,我们回到gitlabaccount仓库中进行配置

4.3 Jenkins构建部署Kubernetes

  1. 构建环境
    4.3 Jenkins构建部署Kubernetes
  1. 构建

以在Jenkins容器为例,构建时当前所在的位置为/var/jenkins_home/workspace/构建任务名

cd deploy
chmod a+x docker_build.sh docker_push.sh && ./docker_build.sh && ./docker_push.sh

4.3 Jenkins构建部署Kubernetes

执行我们之前就已经写好的构建和推送脚本

  1. 构建后操作
    4.3 Jenkins构建部署Kubernetes
cd /root/account/deploy/k8s
chmod a+x k8s-deploy.sh && ./k8s-deploy.sh

最后保存退出

测试

保存之后,我们立即更改account中部分代码,比如打印输出的字符串进行修改。然后推送到Gitlab仓库,先观察jenkins任务中的控制台输出是否返回SUCCESS。再观察此时请求后的标准输出是否已经发生了变化,来验证我们重新整个CI/CD流程是否成功~
4.3 Jenkins构建部署Kubernetes

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~