<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # traefik流量匹配 部署完后啟動 Traefik 時,定義了入口點(端口號和對應的端口名稱),然后 Kubernetes 集群外部就可以通過訪問 Traefik 服務器地址和配置的入口點對 Traefik 服務進行訪問,在訪問時一般會帶上 “域名” + “入口點端口”,然后 Traefik 會根據域名和入口點端口在 Traefik 路由規則表中進行匹配,如果匹配成功,先進入中間件(middlewares)修飾請求,該過程可以包含多個中間件。最后將請求發送到 Kubernetes 內部應用中與外界進行交互。這里面的域名與入口點與對應后臺服務關聯的規則,即是 Traefik 路由規則。 &emsp; Traefik 創建路由規則有多種方式: - 原生 Ingress 寫法,cert-manager可以自動自簽證書。 - 使用 CRD IngressRoute 方式 (推薦) - 使用 GatewayAPI 的方式 這里只演示 `CRD IngressRoute` 方式創建路由規則 # traefik路由 traefik路由分為 `entryPoints` 、 `match` 、 `services` 、 `middlewares` 、 `tls` 配置項組成。前三項是必填項,后面兩項是可選項。 ## entryPoints 參數說明: &emsp;EntryPoints定義要綁定到的入口點名稱列表,必須在靜態配置(啟動配置文件)中配置入口點。 參數配置: &emsp;在 `ingressroute.spec` 下的 entryPoints 配置項 IngressRoute 資源文件示例 ```yaml spec: entryPoints: - web ``` ## routes ### match 參數說明: &emsp;流量進去traefik入口點后,根據match條件來判斷是否匹配成功。否則轉發到404頁面。 參數配置: &emsp;在 `ingressroute.spec.routes` 下的 `kind 和 match` 配置項 IngressRoute 資源文件示例 ```yaml spec: entryPoints: - web routes: - kind: Rule match: Host(`nginx.ecloud.com`) ``` 下表列出了所有可用的匹配器 | 規則 | 描述 | | - | - | | Headers(`key`, `value`) | 檢查headers中是否有一個鍵為key值為value的鍵值對 | | HeadersRegexp(`key`, `regexp`) | 檢查headers中是否有一個鍵位key值為正則表達式匹配的鍵值對 | | Host(`example.com`, ...) | 檢查請求的域名是否包含在特定的域名中 | | HostHeader(`example.com`, ...) | 和Host一樣,只是因為歷史原因而存在 | | HostRegexp(`example.com`, `{subdomain:[a-z]+}.example.com`, ...) | 檢查請求的域名是否包含在特定的正則表達式域名中 | | Method(`GET`, ...) | 檢查請求方法是否為給定的methods(GET、POST、PUT、DELETE、PATCH)中 | | Path(`/path`, `/articles/{cat:[a-z]+}/{id:[0-9]+}`, ...) | 匹配特定的請求路徑,它接受一系列文字和正則表達式路徑 | | PathPrefix(`/products/`, `/articles/{cat:[a-z]+}/{id:[0-9]+}`) | 匹配特定的前綴路徑,它接受一系列文字和正則表達式前綴路徑 | | Query(`foo=bar`, `bar=baz`) | 匹配查詢字符串參數,接受key=value的鍵值對 | | ClientIP(`10.0.0.0/16`, `::1`) | 如果請求客戶端 IP 是給定的 IP/CIDR 之一,則匹配。它接受 IPv4、IPv6 和網段格式 | >[info] 注意:可以使用通常的 AND(&&) 和 OR(||) 邏輯運算符,以及預期的優先級規則和括號。 ### services 參數說明: &emsp; match條件匹配成功后,將流量轉發給 k8s 的 service 對應后端服務處理請求。 參數配置: &emsp;在 `ingressroute.spec.routes` 下的 `services` 配置項 IngressRoute 資源文件示例 ```yaml spec: entryPoints: - web routes: - kind: Rule match: Host(`nginx.ecloud.com`) services: - kind: Service name: nginx port: 80 ``` >[info] kind默認是 `Service`, 可選 `Service` 和 `TraefikService` ### middlewares >[info] 請求被匹配成功后,流量進入k8s之前,請求會先經過middlewares處理后。流量再進入 services 服務。 參數說明: &emsp;將 match 匹配成功后,對請求做處理動作。例如修改路徑、添加認證等操作。 參數配置: &emsp;在 `ingressroute.spec.routes` 下的 `middlewares` 配置項 IngressRoute 資源文件示例 ```yaml spec: entryPoints: - web routes: - match: Host(`nginx.ecloud.com`) kind: Rule services: - name: nginx port: 80 middlewares: - name: auth namespace: default ``` ## tls 參數說明: &emsp;定義該路由是https協議的。注意搭配使用的entryPoints也是https協議。 參數配置: &emsp;在 `ingressroute.spec` 下的 `tls` 配置項 證書生成有三種方式 - 手工生成證書,請參考以下命令 ```shell openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginx.ecloud.com" kubectl create secret tls myapp-tls --cert=tls.crt --key=tls.key ``` - cert-manager自動生成自簽證書。請使用 `Certificate Resources` 證書證書 - Let’s Encrypt。沒有購買證書,這里沒法演示 IngressRoute 資源文件示例 ```yaml spec: entryPoints: - webSecurity routes: - match: Host(`nginx.ecloud.com`) kind: Rule services: - name: nginx port: 80 middlewares: - name: auth namespace: default tls: secretName: myapp-tls ``` # 在線文檔 kubernetes ingressRoute: https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/ kubernetes ingress:https://doc.traefik.io/traefik/routing/providers/kubernetes-ingress/
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看