基于詹金斯的k8 ci/cd实例

  

k8 ci/cd三剑客:jenkinsfile, dockerfile,美丽。yaml
美丽的ci/cd实例
詹金斯+ jenkinsfile + dockerfile +美丽。yaml
1, dockerfile实例
:从harbor.k8s.site/图书馆/jdk/jre 1.8 -apline
ENV TZ上海
=亚洲/体积/tmp
添加构建/libs/*。jar/应用程序/应用程序。jar
运行mkdir/logs/,,回声的java $ {JVMSIZE} ${尤里卡}$ {LOGPATH} ${阿波罗}jar app.jar的祝辞/usr/bin/run.sh; chmod + x/usr/bin/run.sh
WORKDIR/app/
CMD run.sh

  

2,美丽。yaml实例
apiVersion:应用程序/v1beta2
:元数据部署
:
名称:yryd-client
名称空间:默认
标签:
k8s-app: yryd-client

  

规范:
副本:1
revisionHistoryLimit: 1
#滚动升级时70年代后认为该吊舱就绪
minReadySeconds: 70
策略:
# #由于副本为3,则整个升级,pod个数在2 - 4个之间
rollingUpdate:
#滚动升级时会先启动1个吊舱
maxSurge: 1
#滚动升级时允许的最大不可用的豆荚个数
maxUnavailable: 1
选择器:
matchLabels:
k8s-app: yryd-client
模板:
元数据:
标签:
k8s-app: yryd-client规范
:
容器:

  
      <李>名称:yryd-client
    图片:harbor.k8s…网站/yryd/yryd-client:构建& lt; BUILD_TAG>
    港口:
    #容器的端口   
        <李> containerPort: 5001
      名称:yryd-client
      协议:TCP
      env:李   <李>名称:JVMSIZE
      值:-Xms1G -Xmx1G李   <李>   LOGPATH

      名称:价值:-Dlogging.path=/logs/yryd/yryd-client/

        

      apiVersion: v1
      :
      服务元数据:
      名称:yryd-client
      名称空间:默认
      标签:
      k8s-app: yryd-client规范
      :
      港口:
      #集群IP的端口

        
          <李>端口:5001
        名称:yryd-client
        协议:TCP
        #容器的端口
        发送:5001
        选择器:
        k8s-app: yryd-client李   
        李   李
      
  <人力资源/>   

apiVersion:扩展/v1beta1
:元数据导入
:
名称:yryd-client
名称空间:默认规范
:
规则:

  
      <李>主持人:yryd-client.k8s网站。
    http:
    道路:   
        <李>后台:
      名:yryd-client
      servicePort: 5001李   李
      
  

3, jenkinsfile实例

  {

管道代理{
标签“大师”
} {

参数字符串(名字:“branch" defaultValue:“master",描述:“代码branch")
extendedChoice (
defaultValue:“
描述:“选择发布模块”,
multiSelectDelimiter: ', ',
名称:“模块”,
quoteValue:假的,
saveJSONParameterToFile:假的,
类型:“PT_CHECKBOX”,
价值:“yryd-client”,
visibleItemCount: 10)
}
选项{
skipDefaultCheckout(真正的)
buildDiscarder (logRotator (daysToKeepStr:“5”, numToKeepStr: ' 8 '))
} {

阶段阶段(“让代码”){
步骤{
git分支:美元分支,credentialsId: dd93cf17-ab6c-48e4-9aca-b063d05a031b, url: http://git.bqjr.club/MMT-YRYD/mmt-yryd.git的
}
}
阶段(yryd-client) {
当{
表达式{返回“params.module"美元;.contains (yryd-client)}
} {

步骤sh”
imageName=癶arbor.k8s.site/yryd/yryd-client:构建- $ {BUILD_NUMBER}“cd mmt-yryd-client-service
/
/opt/软件/gradle - 4.8/bin/gradle清洁excludedev构建- x测试
码头工人建造- t $ {imageName}。
码头工人推$ {imageName}
码头工人rmi $ {imageName}
sed -“s/& lt; BUILD_TAG>/$ {BUILD_NUMBER}/g"美丽。yaml
- f k8 kubectl适用。yaml——记录
"
}
}
}
}

基于詹金斯的k8 ci/cd实例