K8S-05-Jenkins部署springCloud项目-gateway

Jenkins部署springCloud项目-gateway

代码结构及文件

在这里插入图片描述

application.yml文件内容

server:
  port: 9527
spring:
  application:
    name: cloud-gateway
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.0.31:8848
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
        - id: payment_routh #路由的ID,没有固定规则但要求唯一,建议配合服务名
          uri: lb://nacos-payment-provider #匹配后提供服务的路由地址
          predicates:
            - Path=/payment/**  #断言,路径相匹配的进行路由

Dockerfile文件内容

FROM openjdk:8-jdk-alpine
MAINTAINER HAN
COPY cloud-gateway-gateway-1.0-SNAPSHOT.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

gateway-server.yaml文件内容

关于Docker私有镜像仓库搭建
参考 https://www.cnblogs.com/yanghe123/p/10838454.html

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-gateway
  namespace: default
spec:
  replicas: 3
  selector:
    matchLabels:
      app: app-gateway
  template:
    metadata:
      labels:
        app: app-gateway
    spec:
      containers:
        - name: app-gateway
          image: node1:5000/gateway:version-laster #自己的镜像仓库地址
          imagePullPolicy: Always
          ports:
            - name: http
              containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: app-gateway
  namespace: default
spec:
  selector:
    app: app-gateway
  ports:
    - name: http
      port: 9527
      targetPort: 9527
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gateway-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
    - host: 自己的域名地址
      http:
        paths:
          - path: /payment
            backend:
              serviceName: app-gateway
              servicePort: 9527

Jenkins配置

正常操作不阐述
将jar包、Dockerfile、gateway-server.yaml 放到master以后

nowTime=$(date "+%Y%m%d%H%M%S")
cd /app/gateway
docker build -t gateway:$nowTime . #构建镜像 有个点!
docker tag gateway:$nowTime node1:5000/gateway:$nowTime #向镜像仓库打标签
docker push node1:5000/gateway:$nowTime #推送镜像
sed 's/version-laster/'$nowTime'/g' gateway-server.yaml -i #修改gateway-server.yaml中的版本号
kubectl apply -f gateway-server.yaml #构建应用

下一篇: K8S-06-Jenkins部署springCloud项目-app


版权声明:本文为laigezao原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。