中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

NginxIngress怎么部署

本篇內(nèi)容主要講解“Nginx Ingress怎么部署”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Nginx Ingress怎么部署”吧!

創(chuàng)新互聯(lián)建站專注于盧龍企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,購物商城網(wǎng)站建設(shè)。盧龍網(wǎng)站建設(shè)公司,為盧龍等地區(qū)提供建站服務(wù)。全流程定制制作,專業(yè)設(shè)計,全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

概述

在開源社區(qū)當(dāng)中,Kubernetes 的 Ingress Controller 的實(shí)現(xiàn)有多種方式,Nginx Ingress 只是其中的一種實(shí)現(xiàn)方式,當(dāng)然也是目前社區(qū)中使用量最大的一種 Ingress Controller 的實(shí)現(xiàn)方式,其不僅功能強(qiáng)大,而且性能極高。

Nginx Ingress 是什么

Nginx Ingress 是 Kubernetes 的一種對象,通過nginx-ingress-controller 將用戶聲明的 nginx-ingress 轉(zhuǎn)化成 nginx 的轉(zhuǎn)發(fā)規(guī)則。其核心解決的問題是流量的轉(zhuǎn)發(fā)和東西向的負(fù)載均衡。 主要的工作原理是nginx-ingress-controller監(jiān)聽api-server的變化(Kubernetes Informers),通過 watch Kubernetes 的 Ingress、Service、Endpoint、Secret、ConfigMap 等對象變化,更改 Nginx 實(shí)例的配置,進(jìn)行流量轉(zhuǎn)發(fā)。

Nginx Ingress怎么部署

目前社區(qū)中,針對于 Nginx Ingress 主要有如下的兩種實(shí)現(xiàn)方式

  • Kubernetes 開源社區(qū)的實(shí)現(xiàn)

  • Nginx 官方的實(shí)現(xiàn)

為什么需要 Nginx Ingress

開源社區(qū)當(dāng)中,對 Ingress Controller 的實(shí)現(xiàn)方式有多種,每一種 Controller 都有其適用的場景以及各自的優(yōu)缺點(diǎn),為什么推薦使用 nginx-ingress-controller?下面我們來探討一下,如果不使用 nginx-ingress-controller 會給業(yè)務(wù)帶來什么困擾

這里以騰訊云容器服務(wù)控制臺(以下簡稱 TKE)默認(rèn)推薦的 ingress controller 為例子,存在如下的一些問題:

  1. CLB 類型的 Ingress 能力無法滿足現(xiàn)有業(yè)務(wù)的需求,如無法共享同一個外網(wǎng)入口,支持默認(rèn)默認(rèn)轉(zhuǎn)發(fā)后端等

  2. 原有業(yè)務(wù)已使用了 nginx-inrgess,并且運(yùn)維已習(xí)慣于配置 nginx.conf,不希望做過多的改變

使用 nginx-ingress-controller,能夠很好地解決以上的問題。

需要什么前提條件

部署 nginx-ingress-operator
組件部署安裝

進(jìn)入騰訊云容器服務(wù)控制臺當(dāng)中,選擇需要部署 Nginx Ingress 的集群,進(jìn)入集群-組件管理當(dāng)中,部署安裝 Nginx Ingess 組件,如下圖:

Nginx Ingress怎么部署

組件安裝并且正常運(yùn)行

Nginx Ingress怎么部署

部署方案

TKE 提供了多種對于nginx-ingress-controller的部署方案以及接入 LB 的方式,適配不同的業(yè)務(wù)場景需求,以下會對不同的方案進(jìn)行介紹。

nginx-ingress-controller 部署方案
方案一: DaemonSet + 節(jié)點(diǎn)池

Nginx Ingress怎么部署

Nginx 作為關(guān)鍵的流量接入網(wǎng)關(guān),是至關(guān)重要的組件,不建議將 Nginx 與其他業(yè)務(wù)部署在相同的節(jié)點(diǎn)內(nèi),可以通過節(jié)點(diǎn)池設(shè)置污點(diǎn)的方式,進(jìn)行部署。關(guān)于節(jié)點(diǎn)池的相關(guān)說明,可以查看騰訊云容器服務(wù)節(jié)點(diǎn)池概述

Nginx Ingress怎么部署

使用此部署方案,應(yīng)該注意如下幾個事項(xiàng):

  • 提前準(zhǔn)備好部署 nginx-ingress-controller 的節(jié)點(diǎn)池,同時設(shè)置節(jié)點(diǎn)池的污點(diǎn) TaintLabel,防止其他 Pod 調(diào)度到該節(jié)點(diǎn)池。

  • 確保已成功部署安裝好 nginx-ingress-operator 組件,部署方式參考上方指引

  • 進(jìn)入組件詳情,創(chuàng)建

    nginx-ingress-controller

    實(shí)例(單一集群內(nèi)可同時存在多個實(shí)例)

    • 部署方式選擇 指定節(jié)點(diǎn)池DaemonSet部署

    • 設(shè)置容忍污點(diǎn)

    • 設(shè)置 Request/Limit,其中 Request 需設(shè)置比節(jié)點(diǎn)池的機(jī)型配置?。ü?jié)點(diǎn)本身有資源預(yù)留,避免實(shí)例因資源不足而不可用),Limit 可不設(shè)置

    • 其他參數(shù)根據(jù)業(yè)務(wù)需要進(jìn)行設(shè)置即可

方案二:Deployment + HPA

Nginx Ingress怎么部署

使用 Deployment + HPA 的方案進(jìn)行部署,您可以根據(jù)業(yè)務(wù)需要配置污點(diǎn)和容忍,將 Nginx 和業(yè)務(wù) Pod 進(jìn)行分散部署。搭配 HPA,設(shè)置 CPU/內(nèi)存等指標(biāo)進(jìn)行彈性伸縮。

Nginx Ingress怎么部署

使用此部署方案,應(yīng)該注意如下幾個事項(xiàng):

  • 在集群中設(shè)置即將部署 nginx-ingress-controller 的節(jié)點(diǎn)的 Label

  • 確保已成功部署安裝好 nginx-ingress-operator 組件,部署方式參考上方指引。

  • 進(jìn)入組件詳情,創(chuàng)建

    nginx-ingress-controller

    實(shí)例(單一集群內(nèi)可同時存在多個實(shí)例)

    • 部署方式選擇 自定義Deployment+HPA部署

    • 設(shè)置 HPA 觸發(fā)策略

    • 設(shè)置 Request/Limit

    • 設(shè)置節(jié)點(diǎn)調(diào)度策略,推薦 nginx-ingress-controller 獨(dú)占節(jié)點(diǎn),避免其他業(yè)務(wù)資源侵占而導(dǎo)致不可用

    • 其他參數(shù)根據(jù)業(yè)務(wù)需要進(jìn)行設(shè)置即可

Nginx 前端接入 LB 的部署方式

上文介紹了在 TKE 的集群當(dāng)中部署 nginx-ingress-operatornginx-ingress-controller 的使用流程和部署方案建議,完成以上步驟,僅僅是在集群內(nèi)部署了 Nginx 的相關(guān)組件,但要接收外部的流量,還需要配置,還需要配置 nginx 的前端 LB。當(dāng)前 TKE 已完成對 Nginx Ingress 的產(chǎn)品化支持,可以根據(jù)業(yè)務(wù)需要選擇以下部署模式之一。

方案一:VPC-CNI 模式集群使用 CLB 直通 Nginx 的 Service(推薦)

前置條件(滿足其一即可):

  1. 集群自身網(wǎng)絡(luò)插件為 VPC-CNI

  2. 集群自身網(wǎng)絡(luò)插件為 Global Router,并已開啟 VPC-CNI 的支持(兩種模式混用)

我們以節(jié)點(diǎn)池部署的負(fù)載示例 Nginx Ingress怎么部署 當(dāng)前方案性能好,所有的 Pod 都使用的彈性網(wǎng)卡,彈性網(wǎng)卡的 Pod 是支持 CLB 直綁 Pod 的,可以繞過 NodePort,并且不需要手動維護(hù) CLB,支持自動擴(kuò)縮容,是最理想的方案。

方案二:Global Router 模式集群使用普通 LoadBalancer 模式的 Service

當(dāng)前 TKE 對于 LoadBalancer 類型的 Service 默認(rèn)的實(shí)現(xiàn)是基于 NodePort,CLB 會綁定各節(jié)點(diǎn)的 NodePort 作為后端的 RS,將流量轉(zhuǎn)發(fā)到節(jié)點(diǎn)的 NodePort,然后節(jié)點(diǎn)再通過 Iptables 或 IPVS 將請求路由到 Service 對應(yīng)的后端 Pod(指 Nginx Ingress Controller 的 Pod)。

您的集群如果不支持 VPC-CNI 的網(wǎng)絡(luò)模式,可以通過常規(guī)的 LoadBalancer 訪問方式的 Service 接入流量。 這是在 TKE 上部署 Nginx Ingress 最簡單的方式,流量會經(jīng)過一層 NodePort,多一層轉(zhuǎn)發(fā),但可能存在以下的問題:

  1. 轉(zhuǎn)發(fā)路徑較長,流量到 NodePort 后,還會再經(jīng)過 Kubernetes 內(nèi)部負(fù)載均衡,通過 Iptables 或 IPVS 轉(zhuǎn)發(fā)到 Nginx,會增加一點(diǎn)網(wǎng)絡(luò)耗時

  2. 經(jīng)過 NodePort,必然會發(fā)生 SNAT,如果流量過于集中,容易導(dǎo)致源端口耗盡或者 conntrack 插入沖突而導(dǎo)致丟包,引發(fā)部分流量異常。

  3. 每個節(jié)點(diǎn)的 NodePort 也充當(dāng)一個負(fù)載均衡器,CLB 如果綁定大量節(jié)點(diǎn)的 NodePort,負(fù)載均衡的狀態(tài)就分散在每個節(jié)點(diǎn)上,容易導(dǎo)致全局負(fù)載不均。

  4. CLB 會對 NodePort 進(jìn)行健康探測,探測包最終會被轉(zhuǎn)發(fā)到 Nginx Ingress 的 Pod,如果 CLB 綁定的節(jié)點(diǎn)數(shù)量多于 Nginx Ingress 的 Pod,會導(dǎo)致探測包對 Nginx Ingress 造成較大的壓力。

方案三:使用 HostNetwork + LB

方案二雖然是最簡單的部署方式,但是流量會經(jīng)過一層 NodePort,且可能存在如上所描述的問題,我們可以讓 Nginx Ingress 使用 HostNetwork,CLB 直接綁定節(jié)點(diǎn) IP + 端口(80,443)。由于使用 HostNetwork,nginx ingress 的 Pod 就不能被調(diào)度到同一個節(jié)點(diǎn)當(dāng)中,避免端口監(jiān)聽沖突。 由于 TKE 尚未對此方案進(jìn)行產(chǎn)品化,可以通過提前規(guī)劃,選擇部分節(jié)點(diǎn),專門用于部署 nginx-ingress-controller,為節(jié)點(diǎn)打上 Label,然后以 DaemonSet 的方式部署在這些節(jié)點(diǎn)上(即 nginx-ingress-controller 的部署方案一)。

如何集成監(jiān)控

TKE 通過集成 騰訊云容器團(tuán)隊(duì)的高性能云原生監(jiān)控服務(wù)(傳送門:https://console.cloud.tencent.com/tke2/prometheus ),也可在以前發(fā)布的文章《如何用 Prometheus 監(jiān)控十萬 container 的 Kubernetes 集群》中了解 Prometheus,Kvass 和怎么利用 kvass 為基礎(chǔ)的 Prometheus 集群化技術(shù)。

綁定監(jiān)控實(shí)例

Nginx Ingress怎么部署

查看監(jiān)控數(shù)據(jù)

Nginx Ingress怎么部署

如何采集和消費(fèi)日志

TKE 通過集成 騰訊云日志服務(wù) CLS,提供了全套完整的產(chǎn)品化能力,實(shí)現(xiàn) nginx-ingress-controller 的日志采集和消費(fèi)能力,但需要注意如下幾個事項(xiàng):

  1. 前置要求:確保當(dāng)前集群已開啟日志采集功能

  2. nginx-ingress-controller 實(shí)例中,配置日志采集的相關(guān)選項(xiàng)。

Nginx Ingress怎么部署

到此,相信大家對“Nginx Ingress怎么部署”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享文章:NginxIngress怎么部署
文章路徑:http://www.rwnh.cn/article22/jdcijc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、移動網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、微信小程序、網(wǎng)站收錄品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
五大连池市| 绵竹市| 南涧| 潼关县| 财经| 合山市| 自治县| 宁都县| 定州市| 靖州| 汉阴县| 泗阳县| 徐水县| 南开区| 康马县| 东莞市| 孟津县| 榆树市| 静海县| 新河县| 瓮安县| 桐梓县| 嘉善县| 安岳县| 玛多县| 涪陵区| 黄陵县| 廉江市| 湘阴县| 莆田市| 巴青县| 炉霍县| 东台市| 故城县| 六枝特区| 阿合奇县| 高唐县| 峡江县| 盐城市| 大关县| 广宁县|