DevOps- 案例-KubeSphere实现 cicd
cicd
前面几篇已经讲了 -KubeSphere 和 k8s 的安装 ,这一片就开始讲 k8s 如何使用了的
登录进去后,可以发现有很多丰富的配置,比如监控,磁盘显示、集群信息 ,今天我们主要任务还是带你一步一步搭建一个 demo
先创建一个 git 链接
创建一个 企业空间
DevOps 项目
项目
创建一个· demo
有两种方式,第一种是图形化、我就不演示了,自己看看就会
第二种是 编写 jenkins file
pipeline {
agent {
node {
label 'maven' #你用什么 环境,因为他说java 服务 所以 我们用 mvn 进行
}
}
}
配置git pull 密码
拉取代码
pipeline {
agent {
node {
label 'maven'
}
}
environment { #这里是 变量
JAR_FILE = "${DIR}/${JAVA}"
REGISTRY = 'hub.dokcer.cn' #hub 地址
DOCKERHUB_NAMESPACE = 'msb-yx' #hub的命名空间
KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' #调用哪个kubeconfig集群文件
JAR_PORD = '4004' #服务端口
IMAGES = 'edu-course-service' #服务名称
JAVA = 'target/*.jar' #mvn 打包的路径
DIR = 'horse-business/mall-marketing/mall-marketing-service' #包路径
INSPECT = '/im/actuator/health' #监控检查
}
stages {
stage('代码拉取') {
agent none
steps {
container('maven') {
git(url: 'http://qxh.qcb.cn/qcb.git', credentialsId: 'qcb', branch: 'master', changelog: true, poll: false)
} #url 是 gitlab的项目地址 qcb 用户 master 分支
}
}
pipeline {
agent {
node {
label 'maven'
}
}
environment {
JAR_FILE = "${DIR}/${JAVA}"
REGISTRY = 'hub.dokcer.cn'
DOCKERHUB_NAMESPACE = 'msb-yx'
KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
JAR_PORD = '4004'
IMAGES = 'edu-course-service'
JAVA = 'target/*.jar'
DIR = 'horse-business/mall-marketing/mall-marketing-service'
INSPECT = '/im/actuator/health'
}
stages {
stage('代码拉取') {
agent none
steps {
container('maven') {
git(url: 'http://qxh.qcb.cn/qcb.git', credentialsId: 'qcb', branch: 'master', changelog: true, poll: false)
}
}
}
stage('项目打包') {
agent none
steps {
container('maven') {
sh 'cd horse && mvn clean package -pl com.msb.cloud:$IMAGES -am -Dmaven.test.skip=true'
}
}
}
stage('构建 images') {
steps {
container('maven') {
sh 'cd horse && docker build --build-arg SKNAME="${IMAGES}" --build-arg JAR_FILE="${JAR_FILE}" --build-arg JAR_PORD="${JAR_PORD}" -t $IMAGES:$BUILD_NUMBER .'
}
}
}
stage('推送 images') {
agent none
steps {
container('maven') {
sh 'docker login -u admin -p 123123 hub.mashibing.cn'
sh 'docker tag $IMAGES:$BUILD_NUMBER $REGISTRY/$DOCKERHUB_NAMESPACE/$IMAGES:$BUILD_NUMBER'
sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$IMAGES:$BUILD_NUMBER'
}
}
}
stage('deploy to dev') {
steps {
container ('maven') {
withCredentials([
kubeconfigFile(
credentialsId: env.KUBECONFIG_CREDENTIAL_ID,
variable: 'KUBECONFIG')
]) {
sh 'envsubst < horse/deploy.yaml | kubectl apply -f -'
sh 'docker rmi -f $IMAGES:$BUILD_NUMBER'
}
}
}
}}
#主要根据公司的环境去写的 可以先联系我18573187340给你定制
最后在点击运行就可以了