k8s Nginx Ingress 常用的 9个 配置(annotation)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s Nginx Ingress 常用的 9个 配置(annotation)相关的知识,希望对你有一定的参考价值。
参考技术A 上一篇文章介绍了 ingress vhost这个annotation的使用,趁热打铁我们一口气介绍 9 个常用的annotation。如果一个k8s 集群里面部署多个ingress controller的时候,如果配置ingress 希望指定到某个ingress controller的时候,ingress claas就发挥巨大作用了。
一方面在controller启动的时候需要通过参数指定ingress class
另一方面,在创建ingress的时候,通过annotation指定ingress class,如下所示
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"通过这个annotation可以强制 https,如果是http请求,会通过 301 redirect到 https。
nginx.org/proxy-connect-timeout 和nginx.org/proxy-read-timeout 这两个参数分别设置nginx的建立连接以及等待结果的超时时间。
我们经常将nginx作为api的网关,支持跨域必不可少。通过nginx.ingress.kubernetes.io/cors-allow-methods 设置支持跨域请求的方法。
限流也经常使用,通过 rps 限制每秒请求数,rpm 限制每分钟请求数,connections限制连接数。
这个主要是针对外部请求,防止将流量打满,proxy-body-size 设置最大请求 body,如果超过则会返回 413 请求错误。
这个主要是用于安全限制,只允许特定的客户端请求,但由于现在网络中NAT的广泛应用,这个参数使用的场景比较有限。
这个经常使用,当客户端请求一个不存在的path的时候,我们不希望返回 404 ,跳转到一个默认的服务上。
nginx ingress 默认是开启access log的,如果你想关闭,可以通过将 nginx.ingress.kubernetes.io/enable-access-log 设置成false。
以上是关于k8s Nginx Ingress 常用的 9个 配置(annotation)的主要内容,如果未能解决你的问题,请参考以下文章