Jenkins从部署到 CI/CD 发布至kubernetes

1、jenkins部署

jenkins是常用的CI/CD工具,具有广泛的插件,使用起来简单便捷。工作环境中我使用docker方式进行部署(为什么用docker部署,因为方便)
  1. docker-compose.yaml如下
version: '3'
services:
  jenkins:
    restart: always
    image: docker.io/jenkins/jenkins:latest
    container_name: jenkins
    ports:
      - '8080:8080'   #web 端口
      - '50000:50000' #50000 slave管理端口
    privileged: true
    environment:
      TZ: Asia/Shanghai
    volumes:
      - ./jenkins_home:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
      - /etc/sysconfig/docker:/etc/sysconfig/docker

部署成功后直接访问即可,url如下:http://192.168.1.123:8080

第一次登陆需要创建用户,安装一些插件,按照步骤走下去就好
登陆进入界面如下:

Jenkins从部署到 CI/CD 发布至kubernetes_第1张图片

补充一些常用插件(后面使用详解):Manage Jenkins -> Manage Plugins

    *     Ding Talk   #构建信息通知到钉钉机器人
    *     Git plugin  #拉取git代码
    *     Environment Injector Plugin(注意:会出现下载失败情况,去清华镜像网手动下载即可)  #变量插件,设置kubernetes yaml清单文件时,不会根据不同环境配置很多份,会用通用模板,用变量形式去部署不同的环境,例如不同的namespace、启动参数等等
    *     Docker plugin  #1、构建镜像 2、上传到镜像仓库 3、删除本地镜像
    *     Kubernetes Continuous Deploy Plugin  #发布至kubernetes
    *     Publish Over SSH  # 连接远程主机        

配置CI/CD流程

安装maven及NodeJS工具

进入Global Tool Configuration

Jenkins从部署到 CI/CD 发布至kubernetes_第2张图片

 安装maven和NodeJS,如图新增安装就好,后台会自动下载相应的版本程序
 maven用于编译后端程序
 NodeJS用于编译前端程序

连接docker Remote API

连接远程docker服务器进行镜像构建上传等操作,我直接连接安装jenkins所在的主机,进行构建镜像等操作
1、修改docker配置文件
vim /usr/lib/systemd/system/docker.service 如下图:
2、重启
systemctl daemon-reload 
systemctl restart docker

Jenkins从部署到 CI/CD 发布至kubernetes_第3张图片

配置jenkins连接Remote API

新版本挪了位置,进入方式:Manage Jenkins -> Configure Systen -> 拖到最下面,点击Cloud -> 如下添加即可,可使用Test Connection来检测是否连接成功,显示出版本号即成功

Jenkins从部署到 CI/CD 发布至kubernetes_第4张图片

钉钉配置

Manage Jenkins -> Configure Systen,如下图设置对应的webhook以及安全策略,具体信息去钉钉中设置

Jenkins从部署到 CI/CD 发布至kubernetes_第5张图片

新建Item

Jenkins从部署到 CI/CD 发布至kubernetes_第6张图片

配置钉钉告警

Jenkins从部署到 CI/CD 发布至kubernetes_第7张图片

连接远程git仓库,添加相应的凭证

Jenkins从部署到 CI/CD 发布至kubernetes_第8张图片

构建触发器,一旦git端有代码提交,就会自动进行构建,由于部署在内网,不能使用git的webhook。便使用轮训功能,一分钟检测一次

Jenkins从部署到 CI/CD 发布至kubernetes_第9张图片

配置环境变量模板

Jenkins从部署到 CI/CD 发布至kubernetes_第10张图片

推送镜像至镜像仓库

Jenkins从部署到 CI/CD 发布至kubernetes_第11张图片

发布程序至kubernetes,以下为认证信息与yaml文件所放置的位置

Jenkins从部署到 CI/CD 发布至kubernetes_第12张图片

你可能感兴趣的:(jenkins,devops,kubernetes)