jenkins流水线部署,项目一键部署到k8s,项目一键部署K8S

news/2024/5/9 11:04:12
  1. 预操作

    • 打通jenkins、gitlab凭证, 见下面这篇文章

    https://blog.51cto.com/wzlinux/2160109

    • 然后从这里拿到凭证ID

    image-20220829183248422

    image-20220829183323638

    用以在后面的Jenkinsfile中进行配置。

    • 在阿里云,拿到镜像仓库凭证,用于自动上传镜像。

    image-20220829184951577

  2. Jenkinsfile

    • 放在项目的根目录下,原理同Dockerfile

    node  {def appimagedef registry = '项目仓库相对路径'def registryCredential = 'aliyun-docker-image-repository'// 第一步 拉取代码stage("Checkout"){checkout([$class: 'GitSCM', branches: [[name: '*/'+env.BRANCH_NAME]], extensions: [[$class: 'SubmoduleOption', disableSubmodules: false, parentCredentials: false, recursiveSubmodules: true, reference: '', trackingSubmodules: false]], userRemoteConfigs: [[credentialsId: 'd423a59c-2f90-42d9-dd6c39f0033c', url: '项目Git地址']]])}// 打包镜像stage('Build') {appimage = docker.build registry + ":" + env.BRANCH_NAME + "-$BUILD_NUMBER"}// 推送镜像stage('Publish') {docker.withRegistry('https://registry-vpc.cn-beijing.aliyuncs.com', registryCredential ) {appimage.push()appimage.push(env.BRANCH_NAME)}}// 服务部署stage('Deploy') {def img = "镜像仓库绝对路径:" + env.BRANCH_NAME + "-$BUILD_NUMBER"def namespaceif (env.BRANCH_NAME == 'master' ) {namespace = 'dev'} else if (env.BRANCH_NAME == 'staging' ) {namespace = 'staging'} else if (env.BRANCH_NAME == 'production' ) {namespace = 'production'}sh "kubectl set image deployment/scheduler simba-ranking-scheduler="+img+" --record --namespace "+namespace}
    }
    1. jenkins设置

      • 创建新任务

      image-20220829185254226

      • 设置如下

      image-20220829185549586

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pgtn.cn/news/9.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

提交代码触发Jenkins流水线更新

提交哪个构建哪个 或者 某个指定分支提交才构建 jenkins自己的restful接口在权限认证上比较麻烦,所以我选择了Jenkins的插件generic-webhook-trigger 使用下来感觉没有选错 1. 安装jenkins插件generic-webhook-trigger 在系统配置中去安装插件。 2. 在Jenkinsfile…

java 生成grpc调用service

1. 安装protoc 这里以mac为例: brew install automake brew install libtool brew install protobuf检查 protoc --version2. 下载protoc-(java/go/kotlin)插件 到这里下载对应系统的exe文件 https://repo.maven.apache.org/maven2/io/grpc/protoc-gen-grpc-java…

从言行合一到知行合一

本篇记录突然的随想,偶尔停留 2021年只有两种人在写博客,一种是试图建立受众并从中获利的人,另一种是只想写出想法、而没有任何目标的人。 这两种人的行为都非常好。选择做你喜欢的事,坚持下去,它们最终都可以对他人…