一些Ingress-Nginx yaml样例
基础使用
ingress-basic.yaml
1 | apiVersion: networking.k8s.io/v1 |
重写路径
ingress-rewrite.yaml
1 | apiVersion: networking.k8s.io/v1 |
获取客户端真实IP
ingress-real-ip.yaml
1 | apiVersion: networking.k8s.io/v1 |
配置HTTPS
ingress-https.yaml
1 | # SSL证书Secret(需要先创建) |
金丝雀注解
设置满足特定规则的客户端才能访问新版本服务。以下示例仅请求头中满足foo=bar的客户端请求才能路由到新版本服务。
ingress-canary1.yaml1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: gray-release-canary
annotations:
# 开启Canary。
nginx.ingress.kubernetes.io/canary: "true"
# 请求头为foo。
nginx.ingress.kubernetes.io/canary-by-header: "foo"
# 请求头foo的值为bar时,请求才会被路由到新版本服务new-nginx中。
nginx.ingress.kubernetes.io/canary-by-header-value: "bar"
spec:
ingressClassName: nginx
rules:
- host: www.example.com
http:
paths:
# 新版本服务。
- path: /
backend:
service:
name: new-nginx
port:
number: 80
pathType: ImplementationSpecific在特定规则未被满足时,再按照一定比例将请求路由到新版本服务中。以下示例要求请求头中满足foo=bar的客户端请求,若不包含该请求头,会将50%的流量路由到新版本服务中
ingress-canary2.yaml
1 | apiVersion: networking.k8s.io/v1 |
- 设置一定比例的请求被路由到新版本服务中,以下示例中仅50%的流量被路由到新版本服务中。基于服务权重的流量切分,适用于蓝绿发布场景。
ingress-canary3.yaml
1 | apiVersion: networking.k8s.io/v1 |