Jenkins流水线整合k8s实现代码自动集成和部署

这篇具有很好参考价值的文章主要介绍了Jenkins流水线整合k8s实现代码自动集成和部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前置条件

1、安装好k8s集群

这里先要搭建好一个K8s集群,笔者这边就采用使用了一个一主一丛的k8s集群,k8s集群的版本使用1.19.5版本,服务器的配置:2核4G,操作系统: CentOS Linux release 7.9.2009 (Core)

主机名         ip
k8smaster 192.168.19.8
k8sworker         192.168.19.9

具体的安装步骤可以按照文档来进行:使用kubeadm安装kubernetes_v1.19.x | Kuboard

Jenkins流水线整合k8s实现代码自动集成和部署

2、安装好 Kuboard来管理k8s集群

安装完成后,安装 Kuboard v3 - kubernetes,按照指令:

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
# 您也可以使用下面的指令,唯一的区别是,该指令使用华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像
# kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml

 Kuboard 安装完成后,

  • 在浏览器中打开链接 http://192.168.19.8:30080

  • 输入初始用户名和密码,并登录

    • 用户名: admin
    • 密码: Kuboard123

Jenkins流水线整合k8s实现代码自动集成和部署

3、安装好 IngressClass来进行服务暴露

在集群的IngressClass管理中安装ingressController

Jenkins流水线整合k8s实现代码自动集成和部署

 4、创建test命名空间

后续我们通过jenkinszhong 部署的服务放在这个命名空间中,在k8s集群的master节点上执行如下指令:

[root@localhost ~]# kubectl create ns test
namespace/test created
[root@localhost ~]# kubectl get ns 
NAME              STATUS   AGE
default           Active   13h
ingress-nginx     Active   30m
kube-node-lease   Active   13h
kube-public       Active   13h
kube-system       Active   13h
kuboard           Active   13h
test              Active   2m20s

5、在Kuboard 配置好docker私服的相关配置信息

Jenkins流水线整合k8s实现代码自动集成和部署

Jenkins流水线整合k8s实现代码自动集成和部署

6、在k8s的master和worker节点上配置docker的私服地址

 在/etc/docker/daemon.json文件中添加

Jenkins流水线整合k8s实现代码自动集成和部署

然后重启docker服务,master和worker都需要执行

 systemctl restart docker

测试docker能否进行登录,执行如下命名:

docker login 192.168.19.7:80 -u admin -p Harbor12345

Jenkins流水线整合k8s实现代码自动集成和部署

发现是能够正常登录的 

二、在项目代码中添加k8s的部署文件

1、在项目代码的docker文件夹中添加,pipe-line.yml文件

文件内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: test
  name: pipeline
  labels:
    app: pipeline
spec:
  replicas: 2
  selector:
    matchLabels:
      app: pipeline
  template:
    metadata:
      labels:
        app: pipeline
    spec:
      imagePullSecrets:
        - name: harbor
      containers:
        - name: pipeline
          image: 192.168.19.7:80/repo/mytest:v1.0.10
          imagePullPolicy: Always
          ports:
            - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  namespace: test
  labels:
    app: pipeline
  name: pipeline
spec:
  selector:
    app: pipeline
  ports:
    - port: 8081
      targetPort: 8080
  type: NodePort
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: test
  name: pipeline
spec:
  ingressClassName: ingress
  rules:
    - host: zhang.pipeline.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: pipeline
                port:
                  number: 8081

2、添加域名解析

在window的hosts文件中添加如下域名解析:

C:\Windows\System32\drivers\etc\hosts文件

192.168.19.8  zhang.pipeline.com

3、配置jenkins流水线

3-1、现在k8smaster的/usr/local/目录下创建k8smaster目录

Jenkins流水线整合k8s实现代码自动集成和部署

3.2、在jenkins上新增一个publish over ssh

 Jenkins流水线整合k8s实现代码自动集成和部署

3.3、在项目的任务中添加一个文件传输任务,并执行pod的部署及滚动更新

sshPublisher(publishers: [sshPublisherDesc(configName: 'k8smaster', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''kubectl apply -f /usr/local/k8smaster/docker/pipe-line.yml
kubectl rollout restart deployment pipeline -n test''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'docker/pipe-line.yml')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

 4、测试部署后的流水线构建情况

Jenkins流水线整合k8s实现代码自动集成和部署

 可以看到已经执行成功,至此我们完成了基于jenkins并集成k8s集群进行CICD的流水线建设文章来源地址https://www.toymoban.com/news/detail-451077.html

到了这里,关于Jenkins流水线整合k8s实现代码自动集成和部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • jenkins流水线实现xjar加固

    jenkins流水线实现xjar加固

    xjar的定义 功能特性 xjar使用 修改项目中的pom.xml,一般都是开发改 jenkins流水线配置 查看jenkins工作目录 远端服务器配置–☞需要授权的服务器 获取授权服务器信息 执行脚本 脚本内容, 1.判断镜像是否存在 2.把xjar.go解压,需要有go环境 3.制作镜像,然后把镜像制作成tar包

    2024年02月07日
    浏览(14)
  • 持续集成交付CICD:Jenkins流水线实现Nexus制品晋级策略

    持续集成交付CICD:Jenkins流水线实现Nexus制品晋级策略

    目录 一、理论 1.开发测试运维环境 二、实验 1.Nexus制品晋级策略 (1)开发测试运维环境 (1)环境 表1 主机 主机 架构 版本 IP 备注 jenkins jenkins主节点       2.414.2 192.168.204.15:8080  gitlab runner (从节点) gitlab gitlab 主节点        12.10.14 192.168.204.8:82   jenkins slave (从节

    2024年02月04日
    浏览(17)
  • 【Jenkins】Jenkins构建前端流水线

    【Jenkins】Jenkins构建前端流水线

    1、服务器中已安装好nginx,如没有安装,可参考此博客:【Shell脚本】Linux安装Nginx以及开机自启 2、如果已有试图,则直接新建任务;如没有视图,则新建一个视图即可。 一个项目一个视图就可以 描述:XXX前端-前端XXX服务测试环境-项目构建 创建人:创建者姓名 时间:创建

    2024年02月16日
    浏览(12)
  • jenkins流水线

    jenkins流水线

    1、 二、 三、 四、 五、 六、  

    2024年02月05日
    浏览(18)
  • Jenkins流水线怎么做?

    Jenkins流水线怎么做?

    问CHAT:Jenkins流水线怎么做? CHAT回复:Jenkins流水线是一种创建、测试和部署应用程序的方法。以下是为Jenkins创建流水线的步骤: 1. 安装Jenkins:首先你需要在你的服务器上安装Jenkins。这个过程可能会根据你的操作系统有所不同。 2. 安装必要的插件:为了使流水线工作,你需

    2024年01月24日
    浏览(13)
  • Jenkins的流水线详解

    Jenkins的流水线详解

    来源:u.kubeinfo.cn/ozoxBB 什么是流水线 声明式流水线 Jenkinsfile 的使用 jenkins 有 2 种流水线分为 声明式流水线 与 脚本化流水线 ,脚本化流水线是 jenkins 旧版本使用的流水线脚本,新版本 Jenkins 推荐使用声明式流水线。文档只介绍声明流水线。 声明式流水线 在声明式流水线语

    2024年02月11日
    浏览(33)
  • 【Jenkins】pipeline流水线

    【Jenkins】pipeline流水线

    流水线既能作为任务的本身,也能作为jenkinsfile,使用流水线可以让我们的任务从ui手动操作,转换为代码化,像docker的dockerfile一样,从shell命令到配置文件,更适合大型项目,可以让团队其他开发者同事参与进来,同时也可以编辑开发jenkinswebui不能完成的复杂的构建逻辑,作

    2024年02月09日
    浏览(24)
  • Jenkins-流水线-保姆级教程

    目录 一、Jenkins 是什么? 二、安装方式 2.1 下载并运行 Jenkins  三、什么是流水线 3.1概述 3.2声明式流水线 3.3脚本化流水线 四、声明式流水线 4.1 Sections代码区域块 4.1.1Agent指令 4.1.2agent 的配置示例 4.1.3Post代码块 4.1.4.sepes代码块 五、Jenkinsfile的使用 5.1环境变量 5.1.1静态变量

    2024年02月01日
    浏览(17)
  • Jenkins 流水线多阶段构建

    Jenkins 流水线多阶段构建

    Jenkins流水线配置遇到 无法识别的。需要使用 自定义环境 项。 比如官网的在流水线中使用Docker Started by remote host 172.17.0.1 Obtained Jenkinsfile from git http://10.99.20.51:8082/root/java-devops-demo.git org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: WorkflowScript: 28: Invalid agent type “

    2024年04月22日
    浏览(16)
  • 【Jenkins】Jenkins构建后端流水线

    【Jenkins】Jenkins构建后端流水线

    xxxx后端-后端cim服务测试环境-项目构建 创建人:创建者姓名 时间:创建时间 保持构建天数:2 保持最大构建个数:3 ①clean:清楚之前;package:打包 -Dmaven.test.skip=true:跳过测试;-U:强制让Maven检查所有SNAPSHOT依赖更新 这里的pom.xml文件注意: Branches to build:分支某个环境的

    2024年02月12日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包