kubernetes实现ci/cd
admin
2023-02-03 11:22:36
0

K8S ci/cd三剑客:jenkinsfile、dockerfile、k8s.yaml
k8s的ci/cd实例
jenkins+jenkinsfile+dockerfile+k8s.yaml
1、dockerfile 实例
FROM harbor.k8s.site/library/jdk/jre:1.8-apline
ENV TZ=Asia/Shanghai
VOLUME /tmp
ADD build/libs/*.jar /app/app.jar
RUN mkdir /logs/ && echo 'java ${JVMSIZE} ${EUREKA} ${LOGPATH}  ${APOLLO} -jar app.jar' > /usr/bin/run.sh;chmod a+x /usr/bin/run.sh
WORKDIR /app/
CMD run.sh

2、k8s.yaml 实例
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: yryd-client
namespace: default
labels:
k8s-app: yryd-client

spec:
replicas: 1
revisionHistoryLimit: 1
#滚动升级时70s后认为该pod就绪
minReadySeconds: 70
strategy:
##由于replicas为3,则整个升级,pod个数在2-4个之间
rollingUpdate:
#滚动升级时会先启动1个pod    
maxSurge: 1
#滚动升级时允许的最大Unavailable的pod个数
maxUnavailable: 1  
selector:
matchLabels:
k8s-app: yryd-client
template:
metadata:
labels:
k8s-app: yryd-client
spec:
containers:

  • name: yryd-client
    image: harbor.k8s..site/yryd/yryd-client:build-
    ports:
    #容器的端口
    • containerPort: 5001
      name: yryd-client
      protocol: TCP
      env:
    • name: JVMSIZE
      value: -Xms1G -Xmx1G
    • name: LOGPATH
      value: -Dlogging.path=/logs/yryd/yryd-client/

      apiVersion: v1
      kind: Service
      metadata:
      name: yryd-client
      namespace: default
      labels:
      k8s-app: yryd-client
      spec:
      ports:
      #集群IP的端口

      • port: 5001
        name: yryd-client
        protocol: TCP
        #容器的端口
        targetPort: 5001
        selector:
        k8s-app: yryd-client

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: yryd-client
namespace: default
spec:
rules:

  • host: yryd-client.k8s..site
    http:
    paths:
    • backend:
      serviceName: yryd-client
      servicePort: 5001

3、jenkinsfile实例

pipeline {
agent {
label 'master'
}
parameters {
string(name: "branch", defaultValue: "master", description: "code branch")      
extendedChoice(
defaultValue: '',
description: '选择发布模块',
multiSelectDelimiter: ',',
name: 'module',
quoteValue: false,
saveJSONParameterToFile: false,
type: 'PT_CHECKBOX',
value:'yryd-client',
visibleItemCount: 10)      
}  
options {
skipDefaultCheckout(true)
buildDiscarder(logRotator(daysToKeepStr: '5', numToKeepStr: '8'))
}
stages{  
stage('get code'){
steps{
git branch: '$branch', credentialsId: 'dd93cf17-ab6c-48e4-9aca-b063d05a031b', url: 'http://git.bqjr.club/MMT-YRYD/mmt-yryd.git'
}
}
stage('yryd-client'){
when {
expression { return "$params.module".contains('yryd-client')}
}
steps {
sh '''
imageName="harbor.k8s.site/yryd/yryd-client:build-${BUILD_NUMBER}"
cd mmt-yryd-client-service/
/opt/software/gradle-4.8/bin/gradle clean excludedev build -x test
docker build -t ${imageName} .
docker push ${imageName}
docker rmi ${imageName}
sed -i "s//${BUILD_NUMBER}/g" k8s.yaml
kubectl  apply -f k8s.yaml --record                
'''
}          
}      
}
}

相关内容

热门资讯

重磅消息“情缘到底有挂吗?”(... 家人们!今天小编来为大家解答情缘透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很多人...
【第一财经】“皇豪众娱究竟有挂... 家人们!今天小编来为大家解答皇豪众娱透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很...
今日重大通报“闲来贵州麻将辅助... 今日重大通报“闲来贵州麻将辅助器?”(太坑了原来有挂)您好,闲来贵州麻将这个游戏其实有挂的,确实是有...
终于懂了“欢聚水鱼虎步龙行究竟... 终于懂了“欢聚水鱼虎步龙行究竟有挂吗?”(其实是有挂)您好,欢聚水鱼虎步龙行这个游戏其实有挂的,确实...
【第一财经】“桂麻圈开挂器?”... 网上科普关于“桂麻圈有没有挂”话题很是火热,小编也是针对桂麻圈作*弊开挂的方法以及开挂对应的知识点,...
玩家分享攻略“掌心麻将圈有没有... 有 亲,根据资深记者爆料掌心麻将圈是可以开挂的,确实有挂(咨询软件无需打...
玩家攻略科普“极速暗宝怎么装挂... 有 亲,根据资深记者爆料极速暗宝是可以开挂的,确实有挂(咨询软件无需打开...
【第一财经】“瓜瓜丰城棋牌到底... 【第一财经】“瓜瓜丰城棋牌到底是不是挂?”(原来真的有挂)您好,瓜瓜丰城棋牌这个游戏其实有挂的,确实...
最新引进“新绍兴麻将怎么装挂?... 家人们!今天小编来为大家解答新绍兴麻将透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买...
重磅消息“麦穗app推筒子怎么... 重磅消息“麦穗app推筒子怎么开挂?”(其实是有挂)您好,麦穗app推筒子这个游戏其实有挂的,确实是...