跳转到内容

常见配置示例

本页汇总了最常用的配置,可按需复制和调整。

使用 Let’s Encrypt 进行端到端 TLS 终止:

Terminal window
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx

Gateway 配置 TLS:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: tls-gateway
spec:
gatewayClassName: nantian-gw
listeners:
- name: https
port: 443
protocol: HTTPS
tls:
mode: Terminate
certificateRefs:
- name: gateway-tls
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: path-routing
spec:
parentRefs:
- name: my-gateway
rules:
- matches:
- path: {type: PathPrefix, value: /api}
backendRefs:
- name: api-service
port: 8080
- matches:
- path: {type: PathPrefix, value: /web}
backendRefs:
- name: web-service
port: 3000
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: canary
spec:
parentRefs:
- name: my-gateway
rules:
- backendRefs:
- name: app-v1
port: 8080
weight: 90
- name: app-v2
port: 8080
weight: 10
filters:
- type: CORS
cors:
allowOrigins: ["https://app.example.com"]
allowMethods: [GET, POST, PUT, DELETE]
allowHeaders: [Content-Type, Authorization]
allowCredentials: true
maxAge: 3600

更多示例请参考 英文版