文章目录
-
- 前言
- 1.nginx.ingress.kubernetes.io/canary注解
- 2.nginx.ingress.kubernetes.io/canary-by-header注解
- 3.nginx.ingress.kubernetes.io/canary-by-header-value注解
- 4.nginx.ingress.kubernetes.io/canary-by-header-pattern注解
- 5.nginx.ingress.kubernetes.io/canary-by-cookie注解
- 6.nginx.ingress.kubernetes.io/canary-weight注解
- 7.nginx.ingress.kubernetes.io/canary-weight-total注解
前言
在实际项目过程中为了降低发版风险、保证系统稳定和提供良好的用户体验, 我们经常会使用金丝雀/灰度发布功能, 而云原生时代应用的迭代更加频繁,为了实现云原生环境下的灰度发布,nginx ingress为我们提供了一系列canary注解,可以帮助我们实现:
- 通过请求header或者cookie将指定的用户请求转发至灰度版本服务;
- 按照指定的比例将流量转发至灰度版本和旧版本;
本片文章详细介绍nginx ingress提供的与我们实现灰度相关的7个注解,并针对注解的使用方法和注意事项进行了说明,帮助大家掌握nginx ingress canary实现灰度的注解使用方法
1.nginx.ingress.kubernetes.io/canary注解
可以理解成canary注解的开关,只有当nginx.ingress.kubernetes.io/canary: "true"时,
其他的canary注解才生效。
true: 启用canary功能。
false: 不启用canary功能。
例如: 开启灰度(canary)功能
annotations:
nginx.ingress.kubernetes.io/canary: 'true'
2.nginx.ingress.kubernetes.io/canary-by-header注解
此注解表示基于请求头进行流量转发:
如果请求头中包含指定的header名称,且值为 always,则将请求转发给Ingress对应后端服务。
如果值为 never则不转发。
例如: 只允许header 的key为canary, value为true的请求转发到canary版本服务
annotations: