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

什么是路由(Ingress)

為什么需要Ingress

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

Ingress相關(guān)定義

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

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

Ingress Controller工作原理

ELB Ingress Controller工作原理

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

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

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

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

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


Nginx Ingress Controller工作原理

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

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

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

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

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

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


常見問題

常見問題

更多常見問題?????????????????????

????????????????????更多常見問題

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

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

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

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

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

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

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

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

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

    4.檢查證書問題。

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

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


    更多詳情請參考此文檔。


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

    Nginx Ingress:

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

    nginx.ingress.kubernetes.io/rewrite-target

    更多詳情請參考此文檔。

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

    ELB Ingress:

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

    kubernetes.io/elb.pool-protocol: https

    更多詳情請參考此文檔。

    Nginx Ingress:

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

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

    更多詳情請參考此文檔

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

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

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