范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

k8sNginxIngress常用的9个配置(annotation)

  上一篇文章介绍了 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: 803、请求超时
  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: 804、跨域访问
  我们经常将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: 805、限流
  限流也经常使用,通过 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: 806、最大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: test7、客户端白名单
  这个主要是用于安全限制,只允许特定的客户端请求,但由于现在网络中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: test8、默认服务
  这个经常使用,当客户端请求一个不存在的path的时候,我们不希望返回 404 ,跳转到一个默认的服务上。apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata:   name: test-ingress   annotations:      nginx.ingress.kubernetes.io/default-backend:  spec:   rules:   - http:       paths:       - path: /testpath         backend:           serviceName: test9、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

三星给中国用户让利,12256G偷偷降1700元,多少人还喜欢三星?不知道有没有人喜欢三星旗舰的,作为安卓阵营的老大哥,三星的旗舰一直都被称为安卓机皇,尤其是三星的Note系列,凭借着豪华的堆料和独具匠心的设计,赢得很多用户的心,在办公和创作上也能保时捷中国加速电气化布局Taycan两款新车开启预售21世纪经济报道记者彭苏平上海报道4月27日晚间,保时捷在中国预售了Taycan家族的两款新车型TaycanCrossTurismo和TaycanGTS,前者定位纯电动跨界多用途车中国广电会不会变成下一个中国移动?近日,中国广播电视网络集团有限公司发生工商变更,经营范围新增5G通信技术服务移动通信设备销售等,这进一步预示中国广电即将放号运营。当前市场普遍预期,在今年的517世界电信日上,广电这些好用的软件你有在用嘛?还不知道太可惜了分享几款黑科技app,每一款都是自己精心挑选的。每一款都极简,清新,实用,好用。梅西的小说一款极简干净的小说软件,实用体验极佳特别干净,布局简洁美观,一目了然。整个软件没有任何多余小鲸云共享无线充电的未来在哪?共享充电未来发展的道路依旧是以共享为主题,共享这个概念是以方便人们的生活而诞生的,小鲸云共享无线充电作为这个概念的衍生品应该以如何更加方便人们的生活为要求,不应该只是做个充电宝在做联想中国手机业务总经理摩托罗拉将普及512GB内存手机中国新闻在电脑相关的市场上,联想一直占据着比较领先的地位,在近些年,联想也逐渐开始往手机市场发力。目前联想旗下有多个手机品牌,包括联想手机摩托罗拉手机和拯救者手机等等。而近日,ARM中国CEO或将被罢免Tech星球4月27日晚间消息,据报道,知情人士今日称,软银集团及其子公司ARM即将达成一项协议,将重新控制ARM中国业务,并罢免该公司CEO吴雄昂。2020年,由软银ARM和中国卫星看中国第一期荒原之上的中国创造过去十年,中国人改造荒原联通世界减碳节能,改善民生,不断创造新的奇迹。新华社制作了四期卫星看中国图文故事,让你从高空俯瞰这个变化中的东方国度。今天是第一期荒原之上的中国创造。中国火刘强东那件事此时又被扒出来,背后恐怕不简单四年前的一场强奸案使得当年的京东掌舵人刘强东身陷囹圄,并且在名誉上也极大受损。时隔两年,现在当年的明州事件又再一次的被扒了出来。近日,据跟踪小组最新消息,刘强东一案再次重启调查,将如何延长手机的使用寿命iPhone13三星S22Ultra和Pixel6都是性能强悍的手机,但它们都比较昂贵。随着新手机成本的上涨,从长远来看,延长现有智能手机的使用寿命可以为您节省一大笔钱。有些步骤就刘强东,又被这件事上热搜了京东的老板刘强东这两天又上热搜了,还是之前那档烂事又沉渣泛起了。刘强东在美国明尼苏达州涉嫌性侵在明尼苏达大学里做志愿者的22岁中国留学生刘静尧的案件又要再次庭审。从上图的庭审要点可