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

    文章

    212

    浏览量

    16795
  • CLB
    CLB
    +关注

    关注

    0

    文章

    29

    浏览量

    5956
  • 华为云
    +关注

    关注

    3

    文章

    2509

    浏览量

    17437

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

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

收藏 人收藏

    评论

    相关推荐

    阿里华为腾讯保持高位增长,云安全威胁成头号问题

    在国内市场,阿里牢牢保持第一;华为增速迅猛;腾讯、金山、UCloud、青云等冲击股市板块
    的头像 发表于 04-29 09:34 5547次阅读

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

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

    私有云和公有的对比。

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

    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

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

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

    Fibocom 公有腾讯 技术资料

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

    IOT设备连接上路径 如何让的设备连接上

    如何让的设备连接上?参考如下路径。  
    的头像 发表于 10-11 11:35 355次阅读
    IOT设备连接上<b class='flag-5'>云</b>的<b class='flag-5'>路径</b> 如何让<b class='flag-5'>我</b>的设备连接上<b class='flag-5'>云</b>?

    腾讯、阿里华为云和移动率先通过IPv6专家委测评

    腾讯、阿里华为以及移动率先获得服务IPv
    的头像 发表于 08-31 14:48 2937次阅读

    腾讯云和 NVIDIA 联合推出赋能中小企业的扶持计划

    腾讯 × NVIDIA 初创加速计划” 是腾讯云和 NVIDIA 联合推出的赋能中小企业的扶持计划,成功加入该计划的企业,将同时享受 “腾讯
    的头像 发表于 08-02 10:45 1063次阅读

    润和软件HopeStage操作系统正式上架阿里华为腾讯商店

    近日,润和软件HopeStage操作系统正式上架阿里华为腾讯商店。
    的头像 发表于 08-17 11:27 884次阅读
    润和软件HopeStage操作系统正式上架阿里<b class='flag-5'>云</b>、<b class='flag-5'>华为</b><b class='flag-5'>云</b>、<b class='flag-5'>腾讯</b><b class='flag-5'>云</b>商店

    nginx中的正则表达式和location路径匹配指南

    前言,这里验证的nginx-v1.23.2单机环境下的nginx中的正则表达式、location路径匹配规则和优先级。
    的头像 发表于 09-29 16:02 796次阅读
    nginx中的正则表达式和location<b class='flag-5'>路径</b><b class='flag-5'>匹配</b>指南