前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >KubeSphere之DevOps基本使用

KubeSphere之DevOps基本使用

作者头像
编码如写诗
发布2024-11-15 12:24:00
发布2024-11-15 12:24:00
16400
代码可运行
举报
文章被收录于专栏:编码如写诗编码如写诗
运行总次数:0
代码可运行

1. 简述

KubeSphere 使用Jenkines做DevOps代码管理工具。该功能以组件的形式开启和关闭。KS安装后在'定制资源定义' (CRD)开启

该教程目前实现的功能包含:代码提交后自动打包,打包后推送镜像至harbor仓库并自动部署至k8s环境

2. 创建流水线

创建 DevOps 项目:企业空间—>DevOps 项目—>创建;填入项目名称,点击确定即可

2.1 创建手动运行的流水线

创建流水线

输入流水线名称点下一步,点击添加构建参数。

添加流水线参数

输入名称BRANCH_NAME和对应的版本号(后续Jenkinsfile将根据此参数拉取对应分支代码和打包)

编辑流水线

可以根据模板创建流水线,这里以CI模板为例,点下一步创建。

修改为自己实际使用的,具体使用可参考:使用图形编辑面板创建流水线

创建后,每次提交代码需手动点击运行。点击运行后,将根据流水线步骤进行自动执行。

2.2 创建定时扫描代码仓库的流水线

这里使用私有gitlab仓库为例:

点击选择代码仓库,使用私有gitlab的话,选择git,填写git工程中的路径,凭证为gitlab的账号密码

点击下一步,开启定时扫描,选择定时时间。

定时时间选择后将按此时间进行git检查,检查所有分支时候有变动,如果有变动将会根据该分支下的Jenkinsfile进行自动打包

2.3 使用webhook提交代码后自动打包

与2.2类似,创建流水线时选择代码仓库,此时不需要开启扫描触发器和构建触发器,复制webhook地址

进入gitlab,配置webhook即可。配置完成后,代码有提交变动,gitlab会请求该webhook地址,触发自动打包。自动打包时,根据当前分支下的Jenkinsfile文件进行自动打包

代码语言:javascript
代码运行次数:0
复制
pipeline {
  agent {
    node {
      label 'go'
    }

  }
  stages {
    stage('拉取代码') {
      agent none
      steps {
        container('go') {
          git(url: 'http://192.168.8.134:8083/test_name/app_name.git', credentialsId: 'zhangsan', branch: '$BRANCH_NAME', changelog: true, poll: false)
          sh 'ls -l'
        }
      }
    }

    stage('单元测试-编译') {
      steps {
        container('go') {
          sh 'ls -l'
          sh 'export GOPROXY=https://goproxy.cn '
        }

      }
    }

    stage('构建镜像') {
      agent none
      steps {
        container('go') {
          sh 'docker build -t  $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$BRANCH_NAME .'
        }
      }
    }

    stage('推送镜像') {
      agent none
      steps {
        container('go') {
          withCredentials([usernamePassword(credentialsId : 'harbor' ,passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,)]) {
              sh 'echo "$DOCKER_PASSWORD" | docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin'
              sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$BRANCH_NAME'
            }
        }

      }
    }
 stage('发布') {
         agent none
         steps {
           container('go') {
             withCredentials([kubeconfigContent(credentialsId : 'kubeconfig' ,variable : 'KUBECONFIG_CONFIG' ,)]) {
               sh 'mkdir -p ~/.kube/'
               sh 'echo "$KUBECONFIG_CONFIG" > ~/.kube/config'
               sh ' kubectl apply -f script/k8s/k8s-test_name-app_name.yaml'
             }
           }
         }
    }

  }
  environment {
    REGISTRY = 'core.harbor.dked:30002'
    DOCKERHUB_NAMESPACE = 'test_name'
    APP_NAME = 'app_name'
  }
}

自动部署至k8s

需要在代码中添加工作负载对应的yaml文件,每个版本维护对应的版本号

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编码如写诗 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 简述
  • 2. 创建流水线
    • 2.1 创建手动运行的流水线
      • 创建流水线
      • 添加流水线参数
      • 编辑流水线
    • 2.2 创建定时扫描代码仓库的流水线
    • 2.3 使用webhook提交代码后自动打包
  • 自动部署至k8s
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档