Cpte-Boot/k8s/ingress.yaml

195 lines
5.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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