Cpte-Boot/k8s/ingress.yaml

195 lines
5.4 KiB
YAML
Raw Normal View History

2026-03-06 15:19:25 +08:00
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: wms-ingress
namespace: wms-system
labels:
app: cpte-wms
annotations:
# 使用 Nginx Ingress Controller
kubernetes.io/ingress.class: "nginx"
# 重写目标路径(根据后端服务需要配置)
nginx.ingress.kubernetes.io/rewrite-target: /$2
# SSL 重定向
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
# 代理配置
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "60"
nginx.ingress.kubernetes.io/proxy-send-timeout: "60"
nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
nginx.ingress.kubernetes.io/proxy-buffer-size: "128k"
nginx.ingress.kubernetes.io/proxy-buffers-number: "4"
# 限流配置(可选)
# nginx.ingress.kubernetes.io/limit-rps: "100"
# nginx.ingress.kubernetes.io/limit-connections: "10"
# CORS 配置(跨域)
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-origin: "*"
nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, DELETE, PATCH, OPTIONS"
nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization"
nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
nginx.ingress.kubernetes.io/cors-max-age: "1728000"
# 健康检查
nginx.ingress.kubernetes.io/health-check-path: "/actuator/health"
nginx.ingress.kubernetes.io/health-check-interval: "30s"
nginx.ingress.kubernetes.io/health-check-timeout: "5s"
# 会话保持(可选)
# nginx.ingress.kubernetes.io/affinity: "cookie"
# nginx.ingress.kubernetes.io/session-cookie-name: "WMSSESSION"
# nginx.ingress.kubernetes.io/session-cookie-hash: "sha1"
spec:
ingressClassName: nginx
tls:
- hosts:
- wms.yourcompany.com
secretName: wms-tls-secret # 需要提前创建 TLS Secret
rules:
- host: wms.yourcompany.com
http:
paths:
# 基础服务
- path: /api/wms/basic(/|$)(.*)
pathType: Prefix
backend:
service:
name: wms-basic-service
port:
number: 80
# 入库服务
- path: /api/wms/inbound(/|$)(.*)
pathType: Prefix
backend:
service:
name: wms-inbound-service
port:
number: 80
# 出库服务
- path: /api/wms/outbound(/|$)(.*)
pathType: Prefix
backend:
service:
name: wms-outbound-service
port:
number: 80
# 库存服务
- path: /api/wms/inventory(/|$)(.*)
pathType: Prefix
backend:
service:
name: wms-inventory-service
port:
number: 80
# 调度服务
- path: /api/wms/schedule(/|$)(.*)
pathType: Prefix
backend:
service:
name: wms-schedule-service
port:
number: 80
# Swagger/Knife4j 文档
- path: /doc.html
pathType: Prefix
backend:
service:
name: wms-inbound-service
port:
number: 80
# Actuator 监控端点(建议限制访问 IP
- path: /actuator(/|$)(.*)
pathType: Prefix
backend:
service:
name: wms-inbound-service
port:
number: 80
---
# HTTP 版本(不带 HTTPS用于测试环境
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: wms-ingress-http
namespace: wms-system
labels:
app: cpte-wms
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "60"
nginx.ingress.kubernetes.io/proxy-send-timeout: "60"
nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
spec:
ingressClassName: nginx
rules:
- host: wms-dev.yourcompany.com
http:
paths:
# 基础服务
- path: /api/wms/basic(/|$)(.*)
pathType: Prefix
backend:
service:
name: wms-basic-service
port:
number: 80
# 入库服务
- path: /api/wms/inbound(/|$)(.*)
pathType: Prefix
backend:
service:
name: wms-inbound-service
port:
number: 80
# 出库服务
- path: /api/wms/outbound(/|$)(.*)
pathType: Prefix
backend:
service:
name: wms-outbound-service
port:
number: 80
# 库存服务
- path: /api/wms/inventory(/|$)(.*)
pathType: Prefix
backend:
service:
name: wms-inventory-service
port:
number: 80
# 调度服务
- path: /api/wms/schedule(/|$)(.*)
pathType: Prefix
backend:
service:
name: wms-schedule-service
port:
number: 80
# Knife4j 文档
- path: /doc.html
pathType: Prefix
backend:
service:
name: wms-inbound-service
port:
number: 80