代码结构及文件
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 #构建应用
版权声明:本文为laigezao原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。