百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

k8s Nginx Ingress 常用的 9个 配置(annotation)

off999 2025-02-03 14:31 43 浏览 0 评论

上一篇文章介绍了 ingress vhost这个annotation的使用,趁热打铁我们一口气介绍 9 个常用的annotation。

1、ingress class

如果一个k8s 集群里面部署多个ingress controller的时候,如果配置ingress 希望指定到某个ingress controller的时候,ingress claas就发挥巨大作用了。

一方面在controller启动的时候需要通过参数指定ingress class

--ingress-class=ngx-ds

另一方面,在创建ingress的时候,通过annotation指定ingress class,如下所示

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: other-ngx-k8s
  namespace: other-ngx
  annotations:
    kubernetes.io/ingress.class: "ngx-ds"
spec:
  rules:
  - host: other-ngx-k8s.demo.com.cn
    http:
      paths:
      - path: /
        backend:
          serviceName: other-ngx-k8s-ngx-svc
          servicePort: 9001


2、 强制https

nginx.ingress.kubernetes.io/force-ssl-redirect: "true"通过这个annotation可以强制 https,如果是http请求,会通过 301 redirect到 https。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/preserve-trailing-slash: "true"
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        backend:
          serviceName: test
          servicePort: 80

3、请求超时

nginx.org/proxy-connect-timeout 和nginx.org/proxy-read-timeout 这两个参数分别设置nginx的建立连接以及等待结果的超时时间。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: cafe-ingress-with-annotations
  annotations:
    nginx.org/proxy-connect-timeout: "30s"
    nginx.org/proxy-read-timeout: "20s"
spec:
  rules:
  - host: cafe.example.com
    http:
      paths:
      - path: /tea
        backend:
          serviceName: tea-svc
          servicePort: 80
      - path: /coffee
        backend:
          serviceName: coffee-svc
          servicePort: 80

4、跨域访问

我们经常将nginx作为api的网关,支持跨域必不可少。通过nginx.ingress.kubernetes.io/cors-allow-methods 设置支持跨域请求的方法。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/enable-cors: "true"
    nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS"
    nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For, X-app123-XPTO"
    nginx.ingress.kubernetes.io/cors-expose-headers: "*, X-CustomResponseHeader"
    nginx.ingress.kubernetes.io/cors-max-age: 600
    nginx.ingress.kubernetes.io/cors-allow-credentials: "false"
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        backend:
          serviceName: test
          servicePort: 80

5、限流

限流也经常使用,通过 rps 限制每秒请求数,rpm 限制每分钟请求数,connections限制连接数。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/limit-rps: "5"
    nginx.ingress.kubernetes.io/limit-rpm: "300"
    nginx.ingress.kubernetes.io/limit-connections: "10"
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        backend:
          serviceName: test
          servicePort: 80

6、最大body

这个主要是针对外部请求,防止将流量打满,proxy-body-size 设置最大请求 body,如果超过则会返回 413 请求错误。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: 8m
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        backend:
          serviceName: test

7、客户端白名单

这个主要是用于安全限制,只允许特定的客户端请求,但由于现在网络中NAT的广泛应用,这个参数使用的场景比较有限。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
     ingress.kubernetes.io/whitelist-source-range: "10.0.0.0/24,172.10.0.1"
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        backend:
          serviceName: test

8、默认服务

这个经常使用,当客户端请求一个不存在的path的时候,我们不希望返回 404 ,跳转到一个默认的服务上。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
     nginx.ingress.kubernetes.io/default-backend: <svc name>
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        backend:
          serviceName: test

9、access log开关

nginx ingress 默认是开启access log的,如果你想关闭,可以通过将 nginx.ingress.kubernetes.io/enable-access-log 设置成false。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
     nginx.ingress.kubernetes.io/enable-access-log: "false"
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        backend:
          serviceName: test

相关推荐

app下载注册(app下载注册d39qdf7)

1,电脑注册:打开QQ登录页面,点击立即注册。2,会弹出一个网页,填写上昵称、密码、手机号码等信息后,点击立即注册,即可注册QQ账号。3,手机注册,打开QQ进入登录页面,点击新用户注册。然后会提示输入...

第三方视频播放器哪个软件好

风雷影音播放器2.1.0.5风雷影音II独创双播放内核,聚合MPlayer和MPC强大优势功能,全面支持高清影片流畅播放,无需安装第三方软件,采用级联式多层过滤解码,全面提升影片兼容播放。能够完美播放...

nba2k22安卓版下载(nba2k24苹果版下载免费)

①可能是下载的版本与手机系统不匹配,系统运行不了,用户无法进行安装和使用。②可能是网络线路方面的原因,用户在对其进行使用过程中,网络数据出现故障等情况。③软件厂商没有对安卓系统进行开发,导致安卓用户不...

手机勒索病毒下载(下载木马病毒)

下载抖音极速版是没有病毒的,抖音极速版就跟抖音一样,都是刷视频的一种娱乐软件而且两个软件都是一家公司开发的,抖音极速版刷视频还可以赚金币得现金,每天所赚的金币第二天凌晨系统会自动兑换成现金,很多人下载...

store软件下载(store软件下载最新版)

在OPPO手机里应用商城里头搜索appstore都可以一键下载了,大家写下载的软件或者是APP都要在你手机里的应用商城里头下载,这样里头是没有木马和病毒的而且下载的都是正规的软件和APP,而且安装是...

qq五笔输入法官方下载(qq五笔输入法手机版官方正式版)

打开应用安装目录,打开程序文件在里面再设置一下,让qq拼音为首选输入法,记住切换输入法的切换键,再不行的话从新安装一下即可遇到这种问题可以尝试以下几种办法:1、重装输入法并从重启一下电脑。有些输入法...

查找iphone官网入口(查找iphone官网入口的详细指南)

查找我的苹果官网入口:http://www.apple.com.cn/并点击页面右上角的技术支持选项。2.选择您要查询的设备比如说您要查询iPhone的话就选择iPhone3.在iPhone的技术支持...

nba比赛直播(nba比赛直播免费观看直播jrs)
nba比赛直播(nba比赛直播免费观看直播jrs)

NBA比赛直播可以在多个渠道观看,包括电视、网络直播和手机应用等。在电视方面,国内的CCTV-5和湖南卫视等频道都有播出NBA比赛的节目;在网络直播方面,腾讯体育、优酷体育、爱奇艺体育等平台都有提供NBA比赛的直播服务;在手机应用方面,NB...

2026-01-21 14:03 off999

电脑版ps免费安装包(电脑免费安装photoshop)

1.在搜索引擎中输入adobe并点击搜索。2.点击adobe官网。3.点击支持并点击下载与安装。4.点击开始免费试用并点击下载。5.打开文件夹并点击打开进行安装即可。6.根据以上步骤即可下载安装ps。...

cad制图手机版免费(手机cad制图软件中文免费2020年)

手机上看CAD图纸的软件有很多,应用商店一搜一大堆,有几个我觉得不错的,CAD迷你看图最早之前用过,安装包小,确实迷你,看一般小的图纸还可以,大了就不太好用,经常会卡。CAD快速看图,软件就像名字一样...

七龙珠游戏格斗手机版(七龙珠游戏格斗手机版破解版)

龙珠的卡带对打游戏一共有3个;FC的一个:天下第一武道会GBA两个:对决,舞空斗剧补充;SFC游戏超武斗传.已经知道了.....游戏平台为PS2(虽然wii也有点可能...)....里面龙珠系列的游...

ocr文字识别(ocr文字识别软件)

从广义上说,OCR文字识别也算是人工智能技术,随处可见的人脸识别、OCR识别、指纹识别和虹膜识别技术等人工智能,错落应用在各大领域之中,促进当代企业服务向智能化、自动化转型。云脉OCR开发者平台开放人...

手机微信网页版登录(微博官网网页版入口)

手机微信网页登陆的入口:1、电脑浏览器地址输入wx点qq点com,回车进入微信网页版登录页;2、手机打开登录自己微信,打开扫一扫功能,扫描网页版上的二维码;3、然后手机点击确定,即可成功登录微信网页版...

qq影音播放器官方下载(qq影音播放器2018 免费版)

因为放到手机内存里面只是个压缩文件,所以本身的播放器是用不了的,只能qq音乐才可以用--,用视频下载软件来下载吧,视频下载软件可以直接下载到MP4格式的文件。qlv格式是没有转换器可以转换格式的。你...

一张照片生成3d模型软件(一张照片生成3d模型软件然后把它做出来)

  DAZStudio是一款功能强大且非常专业的三维人物动画制作软件,通过该软件用户可以快速创建3D人物模型,可选用虚拟人物、动物、道具、环节等道具模型进行创作设计,该软件内置多种方法的三维模型编辑...

取消回复欢迎 发表评论: