五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

什么是路由(Ingress)

為什么需要Ingress

Service基于TCP和UDP協(xié)議進(jìn)行訪問(wèn)轉(zhuǎn)發(fā),為集群提供了四層負(fù)載均衡的能力。但是在實(shí)際場(chǎng)景中,Service無(wú)法滿足應(yīng)用層中存在著大量的HTTP/HTTPS訪問(wèn)需求。因此,Kubernetes集群提供了另一種基于HTTP協(xié)議的訪問(wèn)方式——Ingress。

Ingress相關(guān)定義

  1. Ingress資源:一組基于域名或URL把請(qǐng)求轉(zhuǎn)發(fā)到指定Service實(shí)例的訪問(wèn)規(guī)則,是Kubernetes的一種資源對(duì)象,通過(guò)接口服務(wù)實(shí)現(xiàn)增、刪、改、查的操作。
  2. Ingress Controller:請(qǐng)求轉(zhuǎn)發(fā)的執(zhí)行器,用以實(shí)時(shí)監(jiān)控資源對(duì)象Ingress、Service、End-point、Secret(主要是TLS證書和Key)、Node、ConfigMap的變化,解析Ingress定義的規(guī)則并負(fù)責(zé)將請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的后端Service。

Ingress Controller在不同廠商之間的實(shí)現(xiàn)方式不同,根據(jù)負(fù)載均衡器種類的不同,可以將其分成ELB型和Nginx型。CCE支持上述兩種Ingress Controller類型,其中ELB Ingress Controller基于彈性負(fù)載均衡服務(wù)(ELB)實(shí)現(xiàn)流量轉(zhuǎn)發(fā);而Nginx Ingress Controller使用Kubernetes社區(qū)維護(hù)的模板與鏡像,通過(guò)Nginx組件完成流量轉(zhuǎn)發(fā)。

Ingress Controller工作原理

ELB Ingress Controller工作原理

集群內(nèi)訪問(wèn)表示工作負(fù)載暴露給同一集群內(nèi)其他工作負(fù)載訪問(wèn)的方式,通過(guò)集群的內(nèi)部 IP 暴露服務(wù),選擇該值時(shí)服務(wù)只能夠在集群內(nèi)部CCE自研的ELB Ingress Controller基于彈性負(fù)載均衡服務(wù)ELB實(shí)現(xiàn)公網(wǎng)和內(nèi)網(wǎng)(同一VPC內(nèi))的七層網(wǎng)絡(luò)訪問(wèn),通過(guò)不同的URL將訪問(wèn)流量分發(fā)到對(duì)應(yīng)的服務(wù)。

ELB Ingress Controller部署于Master節(jié)點(diǎn)上,與集群所在VPC下的彈性負(fù)載均衡器綁定,支持在同一個(gè)ELB實(shí)例(同一IP)下進(jìn)行不同域名、端口和轉(zhuǎn)發(fā)策略的設(shè)置。ELB Ingress Controller的工作原理如圖,實(shí)現(xiàn)步驟如下:

1.用戶創(chuàng)建Ingress資源,在Ingress中配置流量訪問(wèn)規(guī)則,包括負(fù)載均衡器、URL、SSL以及訪問(wèn)的后端Service端口等。

2.Ingress Controller感知到Ingress資源發(fā)生變化時(shí),就會(huì)根據(jù)其中定義的流量訪問(wèn)規(guī)則,在ELB側(cè)重新配置監(jiān)聽(tīng)器以及后端服務(wù)器路由。

3.當(dāng)用戶進(jìn)行訪問(wèn)時(shí),流量根據(jù)ELB中配置的轉(zhuǎn)發(fā)策略轉(zhuǎn)發(fā)到對(duì)應(yīng)的后端Service端口,然后再經(jīng)過(guò)Service二次轉(zhuǎn)發(fā)訪問(wèn)到關(guān)聯(lián)的各個(gè)工作負(fù)載。


Nginx Ingress Controller工作原理

Nginx型的Ingress使用彈性負(fù)載均衡(ELB)作為流量入口,并在集群中部署nginx-ingress插件來(lái)對(duì)流量進(jìn)行負(fù)載均衡及訪問(wèn)控制。

說(shuō)明:nginx-ingress插件直接使用社區(qū)模板與鏡像,CCE不提供額外維護(hù),不建議用于商用場(chǎng)景。開(kāi)源社區(qū)地址:https://github.com/kubernetes/ingress-nginx

Nginx型的Ingress Controller通過(guò)pod部署在工作節(jié)點(diǎn)上,因此引入了相應(yīng)的運(yùn)維成本和Nginx組件運(yùn)行成本,其工作原理如圖,實(shí)現(xiàn)步驟如下:

1.當(dāng)用戶更新Ingress資源后,Ingress Controller就會(huì)將其中定義的轉(zhuǎn)發(fā)規(guī)則寫入到Nginx的配置文件(nginx.conf)中。

2.內(nèi)置的Nginx組件進(jìn)行reload,加載更新后的配置文件,完成Nginx轉(zhuǎn)發(fā)規(guī)則的修改和更新。

3.在流量訪問(wèn)集群時(shí),首先被已創(chuàng)建的負(fù)載均衡實(shí)例轉(zhuǎn)發(fā)到集群內(nèi)部的Nginx組件,然后Nginx組件再根據(jù)轉(zhuǎn)發(fā)規(guī)則將其轉(zhuǎn)發(fā)至對(duì)應(yīng)的各個(gè)工作負(fù)載。


常見(jiàn)問(wèn)題

常見(jiàn)問(wèn)題

更多常見(jiàn)問(wèn)題?????????????????????

????????????????????更多常見(jiàn)問(wèn)題

  • 集群內(nèi)部無(wú)法使用ELB地址訪問(wèn)負(fù)載

    添加Ingress失敗或無(wú)法正常訪問(wèn)的通用排查思路如下,幫助您由淺入深地排查Ingress訪問(wèn)異常問(wèn)題。

    1.檢查異常是否由Ingress引起。

    首先需要確認(rèn)問(wèn)題是否由Ingress導(dǎo)致的,因此需要確保外部域名解析正常、安全組規(guī)則正確,且Ingress對(duì)應(yīng)的Service和工作負(fù)載工作正常。

    2.檢查Ingress狀態(tài)是否正常。

    在Service和工作負(fù)載都正常的情況下,需要保證Ingress依賴的ELB狀態(tài)正常。如果是Nginx型的Ingress,還需要保證nginx-ingress插件的狀態(tài)是正常的。

    3.檢查Ingress配置是否正確。

    如果以上排查結(jié)果都正常,說(shuō)明可能是Ingress的配置出現(xiàn)問(wèn)題。

    1. 檢查對(duì)接ELB參數(shù)是否填寫正確。
    2. 檢查Service參數(shù)是否填寫正確。
    3. 檢查轉(zhuǎn)發(fā)配置的參數(shù)是否填寫正確。

    4.檢查證書問(wèn)題。

    如果Ingress開(kāi)啟了HTTPS訪問(wèn),還需要排除證書配置錯(cuò)誤的問(wèn)題。您可使用相同ELB創(chuàng)建一個(gè)HTTP協(xié)議的Ingress訪問(wèn),如HTTP協(xié)議下訪問(wèn)正常,則說(shuō)明HTTPS協(xié)議證書可能存在問(wèn)題。

    5.如果以上排查均無(wú)效果,請(qǐng)進(jìn)行抓包分析,或提交工單尋求幫助。


    更多詳情請(qǐng)參考此文檔


  • Ingress如何實(shí)現(xiàn)URL重寫

    Nginx Ingress:

    您可以通過(guò)Rewrite方法實(shí)現(xiàn)URL重寫,即使用以下注解可以實(shí)現(xiàn)不同路徑的重寫規(guī)則。

    nginx.ingress.kubernetes.io/rewrite-target

    更多詳情請(qǐng)參考此文檔。

  • Ingress如何對(duì)接HTTPS協(xié)議的后端服務(wù)

    ELB Ingress:

    Ingress可以對(duì)接不同協(xié)議的后端服務(wù),在默認(rèn)情況下Ingress的后端代理通道是HTTP協(xié)議的,若需要建立HTTPS協(xié)議的通道,可在annotation字段中加入如下配置:

    kubernetes.io/elb.pool-protocol: https

    更多詳情請(qǐng)參考此文檔。

    Nginx Ingress:

    對(duì)于Nginx Ingress,可在annotation字段中加入如下配置:

    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"

    更多詳情請(qǐng)參考此文檔

  • 為什么更換命名空間后無(wú)法創(chuàng)建ingress?

    在default命名空間下可以正常創(chuàng)建ingress,但在其他命名空間(如:ns)下創(chuàng)建時(shí)不能創(chuàng)建成功。

    這是因?yàn)閯?chuàng)建彈性負(fù)載均衡ELB后,使用default命名空間創(chuàng)建80端口的http監(jiān)聽(tīng)器,而在CCE中只允許在本命名空間下創(chuàng)建同一端口的其它ingress(實(shí)際轉(zhuǎn)發(fā)策略可根據(jù)域名、service來(lái)區(qū)分);所以出現(xiàn)客戶側(cè)在其它命名空間無(wú)法創(chuàng)建相同端口的ingress的情況(會(huì)提示端口沖突)。