0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

騰訊云和華為云的ingress路徑匹配規(guī)則把我繞暈了

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2024-01-08 15:59 ? 次閱讀

本文簡單調(diào)研了騰訊云和華為云的關于ingress路徑匹配規(guī)則的實現(xiàn)的差異,了解這些,可以讓你的頭更大。

路徑匹配規(guī)則

目前官方k8s支持的路徑匹配規(guī)則只有以下三種類型,但不同的云廠商通過自己實現(xiàn)對應的ingress controller,往往還支持正則匹配等不同的路徑規(guī)則。

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

騰訊云ingress

本文主要調(diào)研了Tke的兩類ingress,分別是應用型CLB和Nginx ingress Controller,這兩類ingress在頁面創(chuàng)建時均不支持選擇路徑匹配規(guī)則,而二者關于路徑匹配規(guī)則的實現(xiàn)又有所差異,但二者在騰訊云頁面上創(chuàng)建出來的ingress的yaml中路徑匹配字段均是ImplementationSpecific。

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

Nginx Ingress

騰訊云的nginx ingress類型是基于原生的Nginx ingress controller實現(xiàn)的。(別問我是怎么知道的)

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

參考了Nginx ingress的官方文檔,Nginx ingress 支持顯示指定ExactPrefix,也支持通過annotation+ImplementationSpecific的方式去隱式指定正則匹配規(guī)則(kubernetes.github.io/ingress-ngi… ),如下所示:

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

為什么在Tke頁面上創(chuàng)建出來的ingress默認就是ImplementationSpecific規(guī)則,結(jié)合官方文檔上的描述,推測是因為ImplementationSpecificExactPrefix能夠兼容更多的字符類型(kubernetes.github.io/ingress-ngi… )。

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

騰訊云上創(chuàng)建出來的ingress轉(zhuǎn)發(fā)規(guī)則,默認的路徑匹配規(guī)則為ImplementationSpecific,結(jié)合官方文檔說明以及測試驗證,確認默認情況下實際是按照前綴匹配規(guī)則來進行匹配的。

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

應用型CLB

按照騰訊云官方文檔上的描述(cloud.tencent.com/document/pr…),騰訊云上的應用型CLB支持通過配置含特定字符的路徑來使用不同的路徑匹配規(guī)則,具體如下所示:

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

如果是以/開頭的話,按最長前綴匹配,優(yōu)先精確匹配,而后模糊匹配。

Cce ingress

cce的ingress支持前綴匹配,精確匹配和正則匹配三種路徑匹配規(guī)則。按照官方文檔的描述(support.huaweicloud.com/cce_faq/cce…),cce是通過ingress中的property字段來標明路徑匹配規(guī)則,而這個property字段在社區(qū)的ingress上是沒有的。

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

因此,我們使用client-go創(chuàng)建ingress時是打上了這個annotation的,而在cce云上直接創(chuàng)建的ingress是沒有這個annotation的。

這里提供一段轉(zhuǎn)換的代碼供大家參考:


	
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))

	


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 騰訊云
    +關注

    關注

    0

    文章

    207

    瀏覽量

    16732
  • CLB
    CLB
    +關注

    關注

    0

    文章

    27

    瀏覽量

    5932
  • 華為云
    +關注

    關注

    3

    文章

    2387

    瀏覽量

    17207

原文標題:騰訊云和華為云的ingress路徑匹配規(guī)則把我繞暈了

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    阿里華為、騰訊保持高位增長,云安全威脅成頭號問題

    在國內(nèi)市場,阿里牢牢保持第一;華為增速迅猛;騰訊、金山、UCloud、青云等沖擊股市板塊
    的頭像 發(fā)表于 04-29 09:34 ?5457次閱讀

    單面板鋪銅在低層嗎 ?暈了

    單面板鋪銅在低層嗎 ?暈了
    發(fā)表于 01-04 13:44

    私有云和公有的對比。

    、最重要的一點是:公有在國內(nèi)可能都要關閉掉,目前關掉的有360.樂視華為等等,但是有了私有不會擔心關閉,還有就是私有
    發(fā)表于 06-09 10:37

    Kubernetes Ingress 高可靠部署最佳實踐

    在Kubernetes集群中,Ingress是授權(quán)入站連接到達集群服務的規(guī)則集合,為您提供七層負載均衡能力,您可以通過 Ingress 配置提供外部可訪問的 URL、負載均衡、SSL、基于名稱的虛擬主機等。作為集群流量
    發(fā)表于 04-17 14:35

    【推薦體驗】騰訊自然語言處理

    。騰訊自然語言處理的接口分為了基礎版和高級版兩類?;A版包括情感分析、詞法分析、文本糾錯、文本分類等,高級版包括敏感詞識別、文本審核等。騰訊還提供了在線調(diào)試工具API Explor
    發(fā)表于 10-09 15:28

    【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】 不記得是第幾彈,總是重磅發(fā)布,對接騰訊平臺

    吧要對接騰訊平臺,我們首先要下載他的官方sdk,為什么用官方sdk相信不用多少吧,除非你想深入學習技術(shù)或者對他的官方sdk不屑一顧,否則不建議從來手擼喔,生命苦短,何必跟自己過不去那么sdk在哪
    發(fā)表于 01-24 20:57

    網(wǎng)易云和騰訊互掐起來了?鴻蒙“后院”起火了

    今天打開手機老王看到了一條有意思的新聞:“網(wǎng)易云和騰訊QQ音樂都說自己是第一家接入鴻蒙的流媒體音樂,要互掐了嗎?”發(fā)現(xiàn)了沒?多有意思,各大廠都開始“爭著”蹭鴻蒙的熱點,不過,這也是意料之中的事情了
    發(fā)表于 10-27 10:08

    AT指令對接騰訊的使用方法

    文章系列:【騰訊物聯(lián)開發(fā)平臺筆記1】AT指令對接騰訊基本使用;【騰訊物聯(lián)開發(fā)平臺筆記 2】
    發(fā)表于 11-26 06:23

    【合作伙伴】騰訊--產(chǎn)業(yè)智變,啟未來

    騰訊騰訊,騰訊集團傾力打造的計算品牌,面向全世界各個國家和地區(qū)的政府機構(gòu)、企業(yè)組織和個人開
    發(fā)表于 12-12 10:06

    Fibocom 公有騰訊 技術(shù)資料

    Fibocom 公有騰訊 技術(shù)資料內(nèi)容如下:1、騰訊連接教程2、騰訊連連小程序使用教程3
    發(fā)表于 01-05 12:00

    IOT設備連接上路徑 如何讓的設備連接上?

    如何讓的設備連接上?參考如下路徑。 ?
    的頭像 發(fā)表于 10-11 11:35 ?318次閱讀
    IOT設備連接上<b class='flag-5'>云</b>的<b class='flag-5'>路徑</b> 如何讓<b class='flag-5'>我</b>的設備連接上<b class='flag-5'>云</b>?

    騰訊、阿里華為云和移動率先通過IPv6專家委測評

    騰訊、阿里華為以及移動率先獲得服務IPv
    的頭像 發(fā)表于 08-31 14:48 ?2869次閱讀

    騰訊云和 NVIDIA 聯(lián)合推出賦能中小企業(yè)的扶持計劃

    騰訊 × NVIDIA 初創(chuàng)加速計劃” 是騰訊云和 NVIDIA 聯(lián)合推出的賦能中小企業(yè)的扶持計劃,成功加入該計劃的企業(yè),將同時享受 “騰訊
    的頭像 發(fā)表于 08-02 10:45 ?1002次閱讀

    潤和軟件HopeStage操作系統(tǒng)正式上架阿里、華為、騰訊商店

    近日,潤和軟件HopeStage操作系統(tǒng)正式上架阿里、華為、騰訊商店。
    的頭像 發(fā)表于 08-17 11:27 ?809次閱讀
    潤和軟件HopeStage操作系統(tǒng)正式上架阿里<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單機環(huán)境下的nginx中的正則表達式、location路徑匹配規(guī)則和優(yōu)先級。
    的頭像 發(fā)表于 09-29 16:02 ?194次閱讀
    nginx中的正則表達式和location<b class='flag-5'>路徑</b><b class='flag-5'>匹配</b>指南