更新时间:2024-01-04 GMT+08:00

使用Annotation配置Nginx Ingress

CCE的Nginx Ingress插件使用社区模板与镜像,Nginx Ingress默认的其他参数无法满足业务需求时,也可通过添加注解Annotation(注解)的方式自定义参数,例如默认后端、超时时间、请求body体大小等。

本文介绍在创建Nginx类型的Ingress时常用的Annotation。

  • 注解的键值只能是字符串,其他类型(如布尔值或数值)必须使用引号,例如"true"、"false"、"100"。
  • Nginx Ingress支持社区的原生注解,详情请参考Annotations

Ingress类型

表1 Ingress类型注解

参数

类型

描述

支持的集群版本

kubernetes.io/ingress.class

String

  • nginx:表示使用Nginx Ingress。
  • cce:表示使用自研ELB Ingress。

通过API接口创建Ingress时必须增加该参数。

v1.23及以上集群使用ingressClassName参数代替,详情请参见通过Kubectl命令行创建Nginx Ingress

仅v1.21及以下集群

上述注解的使用方法详情请参见通过Kubectl命令行创建Nginx Ingress

配置重定向规则

表2 重定向规则注解

参数

类型

描述

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

Bool

是否只能通过SSL访问(当Ingress包含证书时默认为true),将HTTP请求重定向至HTTPS。

nginx.ingress.kubernetes.io/force-ssl-redirect

Bool

是否强制重定向到HTTPS,即使Ingress未启用TLS,通过HTTP访问时,请求将会被强制重定向(状态码为308)到HTTPS。

配置URL重写规则

表3 URL重写规则注解

参数

类型

描述

nginx.ingress.kubernetes.io/rewrite-target

String

重定向流量的目标URI。

具体使用场景和说明请参见Nginx Ingress配置URL重写规则

对接HTTPS协议的后端服务

表4 对接HTTPS协议的后端服务注解

参数

类型

描述

nginx.ingress.kubernetes.io/backend-protocol

String

参数值为'HTTPS',表示使用HTTPS协议转发请求到后端业务容器。

具体使用场景和说明请参见Nginx Ingress对接HTTPS协议的后端服务

创建一致性哈希负载均衡规则

表5 一致性哈希负载均衡注解

参数

类型

描述

nginx.ingress.kubernetes.io/upstream-hash-by

String

为后端启用一致性哈希进行负载均衡,参数值支持nginx参数、文本值或任意组合,例如:
  • nginx.ingress.kubernetes.io/upstream-hash-by: "$request_uri"代表按照请求uri进行hash。
  • nginx.ingress.kubernetes.io/upstream-hash-by: "$request_uri$host"代表按照请求uri和域名进行hash。
  • nginx.ingress.kubernetes.io/upstream-hash-by: "${request_uri}-text-value"代表按照请求uri和文本值进行hash。

具体使用场景和说明请参见Nginx Ingress使用一致性哈希负载均衡

自定义超时时长

表6 自定义超时时长注解

参数

类型

描述

nginx.ingress.kubernetes.io/proxy-connect-timeout

String

自定义连接超时时长,设置超时值时无需填写单位,默认单位为秒。

例如:

nginx.ingress.kubernetes.io/proxy-connect-timeout: '120'

自定义Body体大小

表7 自定义Body体大小注解

参数

类型

描述

nginx.ingress.kubernetes.io/proxy-body-size

String

当请求中的Body体大小超过允许的最大值时,将向客户端返回413错误,您可通过该参数调整Body体的限制大小。

例如:

nginx.ingress.kubernetes.io/proxy-body-size: 8m

相关文档

更多关于Nginx Ingress支持的注解参数,请参见Annotations