首页 > 其他分享 >k8s---使用ingress配置域名转发时的traefik路径规则详解

k8s---使用ingress配置域名转发时的traefik路径规则详解

时间:2023-08-08 23:33:42浏览次数:38  
标签:ingress PathPrefix traefik client --- api test path spark


ingress中traefik的使用方式如下:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: spark-client-test
  namespace: default
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.frontend.rule.type: PathPrefix
spec:
  rules:
  -
    host: api-beta.test.com
    http:
      paths:
      - path: /api/spark-client-test
        backend:
          serviceName: spark-client-test
          servicePort: 4040

这里注意traefik.frontend.rule.type的区别:

Path: /products/, /articles/{category}/{id:[0-9]+}: Path 可以添加一个URL路径的匹配。它接受一个以{}包括起来的为空或更多url变量的模版。
PathStrip: /products/ 和 Path 相同,但从请求的URL路径中去掉的给定的前缀。
PathStripRegex: /articles/{category}/{id:[0-9]+} Match exact path and strip off the path prior to forwarding the request to the backend. It accepts a sequence of literal and regular expression paths.
PathPrefix: /products/, /articles/{category}/{id:[0-9]+} PathPrefix 可以添加一个URL路径前缀的匹配。它匹配给定模版中的完整URL路径前缀。
PathPrefixStrip: /products/ 和 PathPrefix 相同,但从请求的URL路径中去掉的给定的前缀。
PathPrefixStripRegex: /articles/{category}/{id:[0-9]+} Match request prefix path and strip off the path prefix prior to forwarding the request to the backend. It accepts a sequence of literal and regular expression prefix paths. Starting with Traefik 1.3, the stripped prefix path will be available in the X-Forwarded-Prefix header.

也就是说

Path 和 PathPrefix 使用在 我们的web 服务中本身时带有路由的。

比如 在web服务 本机 访问 使用的 链接时 : localhost:4040/api/spark-client-test

则配置如下:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: spark-client-test
  namespace: default
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.frontend.rule.type: PathPrefix
spec:
  rules:
  -
    host: api-beta.test.com
    http:
      paths:
      - path: /api/spark-client-test
        backend:
          serviceName: spark-client-test
          servicePort: 4040

在浏览器中访问使用 api-beta.test.com/api/spark-client-test 就可以对应访问到。

如果我们使用PathPrefixStrip参数,访问 api-beta.test.com/api/spark-client-test 时,会把 /api/spark-client-test去掉, 实际上访问的时 api-beta.test.com,也就是对应到 localhost:4040 。

根据这样的特性 我们可以根据 自己的 需求来选用 使用 PathPrefix 还是 PathPrefixStrip。

如果我们是想访问到 没有路径的入口 比如 localhost:4040 这种类型,则使用PathPrefixStrip,访问的时候会忽略到我们设置的path

如果我们是想访问到 有路径的入口 比如 localhost:4040/api/spark-client-test 这种类型,则使用PathPrefix,访问的时候会带上到我们设置的path

标签:ingress,PathPrefix,traefik,client,---,api,test,path,spark
From: https://blog.51cto.com/u_16218512/7013771

相关文章

  • hadoop组件---spark实战-----airflow----调度工具airflow的介绍和使用示例
    Airflow是什么Airflow是一个可编程,调度和监控的工作流平台,基于有向无环图(DAG),airflow可以定义一组有依赖的任务,按照依赖依次执行。airflow提供了丰富的命令行工具用于系统管控,而其web管理界面同样也可以方便的管控调度任务,并且对任务运行状态进行实时监控,方便了系统的运维和管理,......
  • 数据挖掘(七) -----在python程序中使用hail
    我们在之前的文章中已经尝试安装了hail和简单的使用数据挖掘(五)-----基于Spark的可伸缩基因数据分析平台开源存储运算架构hail全面了解和安装但是我们发现这种hail的运行方式是需要进入到conda的hail的虚拟环境中才能运行的。我们业务一般来说都是在外层执行,还有其他的业务逻......
  • 数据挖掘(五) -----基于Spark的可伸缩基因数据分析平台开源存储运算架构hail全面了解
    hail简介hail是一个开源的、通用的、面向python数据类型的处理基因数据专用的分析库和方法解决方案。hail的存在是为了支持多维度的复杂的数据结构,比如全基因组关联数据研究(GWAS).GWASTutorialhail的底层是通过python,scala,java和apachespark来实现的。hail官网gitlab官方文......
  • 云监控---grafana使用mysql数据源创建dashboard--全面解析
    grafana的dashboard简介经常被用作基础设施的时间序列数据和应用程序分析的可视化。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持多个数据源;拥有丰富的插件扩展;支持用户权限管理。Grafana有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘dashboard和图形编辑......
  • 遇到问题--Kubernetes--argo--output does not exist
    情况在使用argo进行流程串联时使用了output进行文件输出。在生产环境的argo中运行,即时需要output的文件在pod中不存在,也能正常运行进入后续步骤。但是内测环境的argo同样的情况下会报错。报错如下:path/mendel/need_update_barcode.txtdoesnotexist(or/mendel/need_update_......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • CC1-TransformedMap
    参考链接https://y0n3er.github.io/undefined/45527.htmlhttps://www.lengf233.top/2023/03/19/ru-he-shou-xie-yi-tiao-cc1-lian/https://drun1baby.top/2022/06/06/Java%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96Commons-Collections%E7%AF%8701-CC1%E9%93%BE/环境搭建jdk_8u6......
  • 【代码块】-图片-获取各像素点
    整理代码块代码块整理后存储,供后期使用/*这段代码是用于将图像的像素数据锁定、修改、然后再解锁的操作,以实现对图像像素的直接读写*/privatestaticbyte[]LockUnlockBitsExample(Imageimg){//Createanewbitmap.Bitmapbmp=(Bitmap)img;//......
  • CC1-LazyMap
    参考链接https://y0n3er.github.io/undefined/36068.htmlhttps://www.bilibili.com/video/BV1yP4y1p7N7/攻击链分析这里直接用ysoserial上的链子,和TransformedMap对比一下可以看到,把TransformedMap改成LazyMap了,然后两个AnnotationInvacationHandler下面分析一下gadget链子......
  • 【随手记】Mybatis报错 错误信息:ORA-00911: 无效字符
    注意@param注解是属于哪个包的这个有的时候会有影响接收不到参数xml里面不要加分号查了半天Bug最后发现是xml里面的sql语句后面加了个;,删掉就好了。......