jenkins配合k8s实现应用持续集成-创新互联

上一篇文章写了关于如何build一个可以复用的tomcat的image,这一篇文章讲一下,如何使用此镜像进行重复构建不同的项目。

江州网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联公司公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司

直奔主题:

步骤一 创建相应的mavn项目job

其它配置均不变,主要更改的是build项目后的动作。

注:因为我的k8s集群只有一个节点,所以默认所有的pod会启动在node节点上,所以我这里直接把build好的war直接传到node节点上。

jenkins 配合 k8s实现应用持续集成

再创建一个一个ssh的动作

jenkins 配合 k8s实现应用持续集成

需要注意的地方是,不管是server.xml配置文件还是yml配置文件的路径一定要搞对,不要乱。

master上的意思大概是:

首先检查有没有关于这个项目的configmap,如果没有则创建,如果有则没有动作。

然后是检查是否启动了关于这个项目的deployment,如果没有泽直接创建,如果有则先删除这个deployment,然后再次创建。实现重启效果。

这里又有一个需要注意的地方,如果修改了deployment.yml文件,那么需要手动先去删除当前deployment,不然会报错。

下面展示deployment.yml

# api的版本号
apiVersion: apps/v1
# 创建类型
kind: Deployment
# 描述
metadata:
  name: jlj-learning-controller
  labels:
    app: jlj-learning-controller
spec:
# 启动几个副本
  replicas: 1
  selector:
    matchLabels:
      app: jlj-learning-controller
  template:
    metadata:
      labels:
        app: jlj-learning-controller
    spec:
    # 创建3个volumes
      volumes:
      # 用于存放项目的war包
      - name: "jlj-learning-controller-war"
        hostPath: 
         path: "/Disk/data/tomcat/jlj-learning-controller/code/"
      # 用于存放tomcat的日志
      - name: "jlj-learning-controller-log"
        hostPath:
         path: "/Disk/data/tomcat/jlj-learning-controller/log/"
      # 获取前面创建的configmap中的server.xml文件内容
      - name: "jlj-learning-controller-server-xml"
        configMap:
         name: jlj-learning-controller.xml 
         items:
         - key: server.xml
           path: server.xml
      containers:
      - name: jlj-learning-controller
        image: fushuitong/tomcat:jdk7u21-tomcat7.0.77-cronolog1.6.2
        ports:
        - containerPort: 8080
        # 挂载3个volume
        volumeMounts:
        # 把项目的war包挂载到容器中tomcat的webapps目录下,这样tomcat启动时候直接加载项目,之前已经解压过了。
        - name: jlj-learning-controller-war
          mountPath: /usr/local/tomcat/webapps
        # 把本地的log目录挂载到容器中tomcat的logs目录下,这样tomcat的所有日志都被存放到宿主机的硬盘上,容器删掉日志不会丢失。
        - name: jlj-learning-controller-log
          mountPath: /usr/local/tomcat/logs
        # 这里着重说一下,为什么要吧server.xml文件挂载的容器的configfile目录下,因为通过这种方式会把容器本来目录下的内容删除,
        # 所以我们把这个server.xml文件挂载到/configfile目录下,因为在上一篇build 镜像的时候,就已经做过ln的动作了,所以这个会
        # 当做tomcat的配置文件加载了。
        - name: jlj-learning-controller-server-xml
          mountPath: /configfile

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:jenkins配合k8s实现应用持续集成-创新互联
网页路径:http://ybzwz.com/article/decgch.html