Dra-M Dra-M
首页
技术
冥思
哲学
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

莫小龙

保持理智,相信未来。
首页
技术
冥思
哲学
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Java

  • Golang

  • 编程思想

  • 微服务

  • 中间件

  • Python

  • 运维

    • Linux

    • Bash

    • DevOps

      • 前言:搭建一套自有的围绕K8S的DevOps工具
      • 部署K8S -- kubeasz
      • 部署NFS服务器
      • 为K8S添加StorageClass
      • 学习用NodePort暴露K8S服务
      • 外部nginx代理到nodeport
      • 使用Docker安装LDAP
      • 使用K8S部署LDAP管理面板
      • 使用Docker部署第三方K8S面板Kuboard,并连接LDAP
      • 使用K8S部署GitLab,并连接LDAP
      • 使用K8S部署Jenkins,并连接LDAP
      • 使用K8S部署Nexus,并连接LDAP
      • Nexus Maven私服配置
      • Nexus Docker私服配置+K8S拉取私服镜像
      • Jenkins Pipeline 从 K8s Agent 启动构建
      • Jenkins Pipeline 拉取Git代码 获取提交信息
      • Jenkins Pipeline Maven打包
      • Jenkins Pipeline BuildDockerImage 推送到私服
      • Jenkins Pipeline 部署程序到K8S
        • 创建KubeConfig文件
        • 创建部署模板文件
        • Pipeline
      • Jenkins Pipeline 共享库
      • Loki日志收集+K8S
      • SkyWalking链路追踪+K8S、
      • SpringCloud+K8S联调说明
      • DevOps WebHook汇总 (Gitlab,Jenkins,K8S Event)
  • 技术
  • 运维
  • DevOps
莫小龙
2022-04-11
目录

Jenkins Pipeline 部署程序到K8S

前置步骤: Nexus Docker私服配置+K8S拉取私服镜像

# 创建KubeConfig文件

复制集群内的~/.kube/config

在Jenkins中Managed files创建文件,类型MyCustom

# 创建部署模板文件

在Jenkins中Managed files创建文件,类型MyCustom

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    k8s.kuboard.cn/name: #{appname}
  name: #{appname}
  namespace: iot-dev
spec:
  selector:
    matchLabels:
      k8s.kuboard.cn/name: #{appname}
  template:
    labels:
      k8s.kuboard.cn/name: #{appname}
    spec:
      containers:
        - name: #{appname}
          image: '192.168.1.177:30303/#{appname}:#{apptag}'
          ports:
            - containerPort: 8080
              name: http
              protocol: TCP
      dnsPolicy: ClusterFirst
      imagePullSecrets:
        - name: mydocker
      restartPolicy: Always
      env:
        - name: TZ
          value: Asia/Shanghai
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# Pipeline

env.appName = "myApp"
env.deploymentTemplateId = "部署模板文件id"
stage("k8s deploy") {

    //复制kube集群配置文件 使kubectl能够连接集群 *我的Docker是带kubectl的,如果是官方Agent需要再安装
    configFileProvider([configFile(fileId: 'kubeconfig', variable: 'KUBE_CONFIG')]) {
        sh 'mkdir ~/.kube'
        sh 'cp $KUBE_CONFIG ~/.kube/config'
        sh 'kubectl get nodes'
    }

    //引入部署模板
    configFileProvider([configFile(fileId: env.deploymentTemplateId, variable: 'DEPLOYMENT')]) {
        //替换模板字段 生成部署文件
        sh "sed  's/#{appname}/${env.appName}/;s/#{apptag}/${env.BUILD_TAG}/' $DEPLOYMENT  > deployment.yaml"
        //部署
        sh "kubectl apply -f deployment.yaml"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

#DevOps#K8S#运维#jenkins#pipeline
上次更新: 10/23/2024
Jenkins Pipeline BuildDockerImage 推送到私服
Jenkins Pipeline 共享库

← Jenkins Pipeline BuildDockerImage 推送到私服 Jenkins Pipeline 共享库→

最近更新
01
mosquito配置ws协议
10-23
02
Pip包的离线下载和安装
10-23
03
stable diffusion 相关收藏
02-24
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Dra-M
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式