使用Annotation配置Nginx Ingress
CCE的Nginx Ingress插件使用社区模板与镜像,Nginx Ingress默认的其他参数无法满足业务需求时,也可通过添加注解Annotation(注解)的方式自定义参数,例如默认后端、超时时间、请求body体大小等。
本文介绍在创建Nginx类型的Ingress时常用的Annotation。
- 注解的键值只能是字符串,其他类型(如布尔值或数值)必须使用引号,例如"true"、"false"、"100"。
- Nginx Ingress支持社区的原生注解,详情请参考Annotations。
Ingress类型
参数 |
类型 |
描述 |
支持的集群版本 |
---|---|---|---|
kubernetes.io/ingress.class |
String |
通过API接口创建Ingress时必须增加该参数。 v1.23及以上集群使用ingressClassName参数代替,详情请参见通过Kubectl命令行创建Nginx Ingress。 |
仅v1.21及以下集群 |
上述注解的使用方法详情请参见通过Kubectl命令行创建Nginx Ingress。
配置重定向规则
参数 |
类型 |
描述 |
---|---|---|
nginx.ingress.kubernetes.io/permanent-redirect |
String |
将访问请求永久重定向至某个目标网址(状态码为301)。 |
nginx.ingress.kubernetes.io/permanent-redirect-code |
String |
修改永久重定向的返回状态码为指定值。 |
nginx.ingress.kubernetes.io/temporal-redirect |
String |
将访问请求临时重定向至某个目标网址(状态码为302)。 |
nginx.ingress.kubernetes.io/ssl-redirect |
String |
是否只能通过SSL访问(当Ingress包含证书时默认为true),将HTTP请求重定向至HTTPS。 |
nginx.ingress.kubernetes.io/force-ssl-redirect |
String |
是否强制重定向到HTTPS,即使Ingress未启用TLS,通过HTTP访问时,请求将会被强制重定向(状态码为308)到HTTPS。 |
具体使用场景和说明请参见Nginx Ingress配置重定向规则。
配置URL重写规则
参数 |
类型 |
描述 |
---|---|---|
nginx.ingress.kubernetes.io/rewrite-target |
String |
重定向流量的目标URI。 |
具体使用场景和说明请参见Nginx Ingress配置URL重写规则。
对接HTTPS协议的后端服务
参数 |
类型 |
描述 |
---|---|---|
nginx.ingress.kubernetes.io/backend-protocol |
String |
参数值为'HTTPS',表示使用HTTPS协议转发请求到后端业务容器。 |
具体使用场景和说明请参见Nginx Ingress对接HTTPS协议的后端服务。
创建一致性哈希负载均衡规则
参数 |
类型 |
描述 |
---|---|---|
nginx.ingress.kubernetes.io/upstream-hash-by |
String |
为后端启用一致性哈希进行负载均衡,参数值支持nginx参数、文本值或任意组合,例如:
|
具体使用场景和说明请参见Nginx Ingress使用一致性哈希负载均衡。
自定义超时时长
参数 |
类型 |
描述 |
---|---|---|
nginx.ingress.kubernetes.io/proxy-connect-timeout |
String |
自定义连接超时时长,设置超时值时无需填写单位,默认单位为秒。 例如: nginx.ingress.kubernetes.io/proxy-connect-timeout: '120' |