0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

腾讯云和华为云的ingress路径匹配规则把我绕晕了

马哥Linux运维 来源:马哥Linux运维 2024-01-08 15:59 次阅读

本文简单调研了腾讯云和华为云的关于ingress路径匹配规则的实现的差异,了解这些,可以让你的头更大

路径匹配规则

目前官方k8s支持的路径匹配规则只有以下三种类型,但不同的云厂商通过自己实现对应的ingress controller,往往还支持正则匹配等不同的路径规则。

5a251858-9c10-11ee-8b88-92fbcf53809c.jpg

腾讯云ingress

本文主要调研了Tke的两类ingress,分别是应用型CLB和Nginx ingress Controller,这两类ingress在页面创建时均不支持选择路径匹配规则,而二者关于路径匹配规则的实现又有所差异,但二者在腾讯云页面上创建出来的ingress的yaml中路径匹配字段均是ImplementationSpecific

5a398f90-9c10-11ee-8b88-92fbcf53809c.jpg

Nginx Ingress

腾讯云的nginx ingress类型是基于原生的Nginx ingress controller实现的。(别问我是怎么知道的)

5a535ac4-9c10-11ee-8b88-92fbcf53809c.jpg

参考了Nginx ingress的官方文档,Nginx ingress 支持显示指定ExactPrefix,也支持通过annotation+ImplementationSpecific的方式去隐式指定正则匹配规则(kubernetes.github.io/ingress-ngi… ),如下所示:

5a677a22-9c10-11ee-8b88-92fbcf53809c.jpg

为什么在Tke页面上创建出来的ingress默认就是ImplementationSpecific规则,结合官方文档上的描述,推测是因为ImplementationSpecificExactPrefix能够兼容更多的字符类型(kubernetes.github.io/ingress-ngi… )。

5a7ea4cc-9c10-11ee-8b88-92fbcf53809c.jpg

腾讯云上创建出来的ingress转发规则,默认的路径匹配规则为ImplementationSpecific,结合官方文档说明以及测试验证,确认默认情况下实际是按照前缀匹配规则来进行匹配的。

5a93377a-9c10-11ee-8b88-92fbcf53809c.jpg

应用型CLB

按照腾讯云官方文档上的描述(cloud.tencent.com/document/pr…),腾讯云上的应用型CLB支持通过配置含特定字符的路径来使用不同的路径匹配规则,具体如下所示:

5aa86b5e-9c10-11ee-8b88-92fbcf53809c.jpg

如果是以/开头的话,按最长前缀匹配,优先精确匹配,而后模糊匹配。

Cce ingress

cce的ingress支持前缀匹配,精确匹配和正则匹配三种路径匹配规则。按照官方文档的描述(support.huaweicloud.com/cce_faq/cce…),cce是通过ingress中的property字段来标明路径匹配规则,而这个property字段在社区的ingress上是没有的。

5aba7556-9c10-11ee-8b88-92fbcf53809c.jpg

因此,我们使用client-go创建ingress时是打上了这个annotation的,而在cce云上直接创建的ingress是没有这个annotation的。

这里提供一段转换的代码供大家参考:


	
type ccePathType struct {
   Host      string `json:"host"`
   Path      string `json:"path"`
   MatchMode string `json:"matchmode"`
}




var ingressProperty []ccePathType
for i := range ingress.Spec.Rules {
   if ingress.Spec.Rules[i].HTTP != nil {
      for j := range ingress.Spec.Rules[i].HTTP.Paths {
         ingressProperty = append(ingressProperty, ccePathType{
            Host:      ingress.Spec.Rules[i].Host,
            Path:      ingress.Spec.Rules[i].HTTP.Paths[j].Path,
            MatchMode: matchModeMap[string(*ingress.Spec.Rules[i].HTTP.Paths[j].PathType)],
         })
         ingress.Spec.Rules[i].HTTP.Paths[j].PathType = (*networkingv1.PathType)(&implementationSpecificPathType)
      }
   }
}
cceIngressPropertyValue, err := json.Marshal(ingressProperty)
if err != nil {
   return err
}
meta.SetAnnotation(ingress, "kubernetes.io/ingress.property", string(cceIngressPropertyValue))

	


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 腾讯云
    +关注

    关注

    0

    文章

    190

    浏览量

    16617
  • CLB
    CLB
    +关注

    关注

    0

    文章

    24

    浏览量

    5863
  • 华为云
    +关注

    关注

    3

    文章

    2155

    浏览量

    16807

原文标题:腾讯云和华为云的ingress路径匹配规则把我绕晕了

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    华为的编程规则

    本帖最后由 gk320830 于 2015-3-5 00:45 编辑 华为的编程规则
    发表于 12-05 15:39

    华为布线规则求解

    正确匹配,可以采用多种形式的匹配方法, 所选择的匹配方法与网络的连接方式和布线的拓朴结构) k% U9 v) Y8 y: K, P- H: s9 b有关。 这是华为PCB设计
    发表于 11-07 10:16

    单面板铺铜在低层吗 ?晕了

    单面板铺铜在低层吗 ?晕了
    发表于 01-04 13:44

    私有云和公有的对比。

    、最重要的一点是:公有在国内可能都要关闭掉,目前关掉的有360.乐视华为等等,但是有了私有不会担心关闭,还有就是私有
    发表于 06-09 10:37

    音视频转码技术指南:国内主流转码服务提供商对比测评

    速度角度:七牛>阿里>腾讯2. 视频码率使用相同视频,相同参数的转码模板,阿里开启窄带高清选项(
    发表于 02-28 11:51

    Kubernetes Ingress 高可靠部署最佳实践

    在Kubernetes集群中,Ingress是授权入站连接到达集群服务的规则集合,为您提供七层负载均衡能力,您可以通过 Ingress 配置提供外部可访问的 URL、负载均衡、SSL、基于名称的虚拟主机等。作为集群流量
    发表于 04-17 14:35

    【推荐体验】腾讯自然语言处理

    腾讯自然语言处理的接口分为了基础版和高级版两类。基础版包括情感分析、词法分析、文本纠错、文本分类等,高级版包括敏感词识别、文本审核等。腾讯还提供了在线调试工具API Explor
    发表于 10-09 15:28

    【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】 不记得是第几弹,总是重磅发布,对接腾讯平台

    吧要对接腾讯平台,我们首先要下载他的官方sdk,为什么用官方sdk相信不用多少吧,除非你想深入学习技术或者对他的官方sdk不屑一顾,否则不建议从来手撸喔,生命苦短,何必跟自己过不去那么sdk在哪
    发表于 01-24 20:57

    网易云和腾讯互掐起来了?鸿蒙“后院”起火了

    今天打开手机老王看到了一条有意思的新闻:“网易云和腾讯QQ音乐都说自己是第一家接入鸿蒙的流媒体音乐,要互掐了吗?”发现了没?多有意思,各大厂都开始“争着”蹭鸿蒙的热点,不过,这也是意料之中的事情了
    发表于 10-27 10:08

    AT指令对接腾讯的使用方法

    文章系列:【腾讯物联开发平台笔记1】AT指令对接腾讯基本使用;【腾讯物联开发平台笔记 2】
    发表于 11-26 06:23

    腾讯内存不足该怎么去解决呢

    今天鼓捣一下连接腾讯,估计代码比较大把,要用到mbedtls,结果好不容易各种编译报错解决了,蹦出来个内存不足,这有点措手不及呀:这288KB有一部分是给code的吧,系统跑起来只剩6k给应用了?还是要在哪里改堆策略?
    发表于 12-28 06:25

    【合作伙伴】腾讯--产业智变,启未来

    腾讯腾讯腾讯集团倾力打造的计算品牌,面向全世界各个国家和地区的政府机构、企业组织和个人开
    发表于 12-12 10:06

    Fibocom 公有腾讯 技术资料

    Fibocom 公有腾讯 技术资料内容如下:1、腾讯连接教程2、腾讯连连小程序使用教程3
    发表于 01-05 12:00

    Fibocom 公有华为 技术资料

    Fibocom 公有华为 技术资料内容如下:1、华为连接教程2、华为
    发表于 01-05 12:12

    高效的Snort规则匹配机制

    该文在分析了 Snort 的规则及其检测过程的基础之上,提出一种动态规则匹配机制,增加选项索引链表,对规则匹配的次序进行动态调整,从而提高
    发表于 06-13 14:09 23次下载