当前位置: 首页 > article >正文

kubernetes各个条件下使用nginx-ingress进行路由映射

1、nginx-ingress路由配置并将路由名称去除(不传递到后台service)

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - http:
      paths:
      - path: /foo/(.*)
        backend:
          serviceName: example-service
          servicePort: 80
      - path: /bar/(.*)
        backend:
          serviceName: example-service
          servicePort: 80

上述配置得到结果是请求的接口/foo和/bar不会传递到后台service
对应kuboard配置方式如下
在这里插入图片描述
请求测试
在这里插入图片描述
在这里插入图片描述
2、如果将路由路径传到后台service

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
  annotations: {}
spec:
  rules:
  - http:
      paths:
      - path: /foo
        backend:
          serviceName: example-service
          servicePort: 80
      - path: /bar
        backend:
          serviceName: example-service
          servicePort: 80

这个前提是要保证后台service中有对应的foo和bar路径
3、部分路由传递,其余的不匹配的不传递过去

nginx.ingress.kubernetes.io/server-snippet: |
  if ($uri = /spot-all/) {
      rewrite ^ /;
      proxy_pass http://a-service;
  }
  if ($uri = /spot-order/) {
      rewrite ^ /;
      proxy_pass http://b-service;
  }

4、部分路由传递,不匹配的不传递

nginx.ingress.kubernetes.io/server-snippet: |
  location /spot-all/ {
      proxy_pass http://a-service;
  }
  location /spot-order/ {
      proxy_pass http://b-service;
  }

5、同一配置不同路由路径配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/rewrite-target: /foo/$1
spec:
  rules:
  - http:
      paths:
      - path: /app1/(.*)
        pathType: Prefix
        backend:
          service:
            name: app1
            port:
              name: http
      - path: /app2/(.*)
        pathType: Prefix
        backend:
          service:
            name: app2
            port:
              name: http

在这个例子中,/app1 和 /app2 的请求路径都会被重写,但每个请求路径的替换目标不同。/app1 的请求路径将重写为 /,而 /app2 的请求路径将重写为 /foo/


http://www.kler.cn/a/6871.html

相关文章:

  • 详细解读CNAS实验室认证
  • 大学作业参考:网页设计作业 - 工作计划-Java SQL HTML源码下载
  • 基本数据类型:Kotlin、Dart (Flutter)、Java 和 C++ 的比较
  • 【Redis】使用redis实现登录校验功能
  • ChatGPT学术专用版,一键润色纠错+中英互译+批量翻译PDF
  • django-ninja 实现cors跨域请求
  • git 删除提交记录
  • flex布局:输入框布局demo
  • 多国拟发ChatGPT禁令 关“野兽”的笼子要来了?
  • itop-3568开发板驱动学习笔记(8)高级字符设备(二)IO 多路复用
  • Java 基本数据类型
  • yshop代码生成器遇到的问题 eFrom.vue没生成
  • 从零开始实现一个C++高性能服务器框架----配置模块
  • 【华为机试真题详解JAVA实现】—整数与IP地址间的转换
  • plt常用绘图方法总结
  • 【游戏策划】消消乐游戏策划案
  • Windows11之QT开发框架超详细下载安装与使用教程
  • 【Java贪心】P1208 [USACO1.3]混合牛奶 Mixing Milk
  • mySql的配置文件 .ini
  • 办公工具-latex
  • (不打广告)推荐这款永久免费内网穿透软件-神卓互联
  • C#中的异常
  • 【趣味杂谈】ChatGPT,不止是第四次工业革命的开始
  • 网站都变成灰色了,怎么实现的?
  • 函数的返回值
  • ToBeWritten之Radare2 使用教程