溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

NGINX服務(wù)網(wǎng)格是什么

發(fā)布時間:2021-11-30 12:00:21 來源:億速云 閱讀:195 作者:iii 欄目:云計算

這篇文章主要介紹“NGINX服務(wù)網(wǎng)格是什么”,在日常操作中,相信很多人在NGINX服務(wù)網(wǎng)格是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”NGINX服務(wù)網(wǎng)格是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

NSM 通過使用戶集中配置來解決以上挑戰(zhàn):

  • 安全——如今安全比以往任何時候都更加重要,數(shù)據(jù)泄露每年可能使組織損失數(shù)百萬美元的收入和聲譽。NSM 確保所有通信均經(jīng)過 mTLS 加密,因此網(wǎng)絡(luò)上沒有敏感數(shù)據(jù)可被黑客竊取。通過訪問控制可以定義策略來控制哪些服務(wù)可以相互通信。

  • 流量管理——在部署應(yīng)用程序的一個新版本時,用戶可能希望先限制新版本應(yīng)用程序接收的流量,以防可能存在 bug。使用 NSM 智能容器流量管理,用戶可以指定限制流量到新服務(wù)的策略,并隨著時間的推移逐漸增加流量。限流和斷路器等功能使用戶可以完全控制流經(jīng)服務(wù)的流量。

  • 可視化——管理數(shù)千個服務(wù)對于調(diào)試和可見性可能是一個噩夢。NSM 通過內(nèi)置的 Grafana 儀表板在 NGINX Plus 中顯示可用的全套指標(biāo)來幫助用戶解除這個噩夢。此外,Open Tracing 的集成實現(xiàn)了細粒度的事務(wù)跟蹤。

  • 混合部署——如果用戶的企業(yè)像大多數(shù)企業(yè)一樣,整個基礎(chǔ)架構(gòu)不完全在 Kubernetes 中運行。NSM 確保不會遺漏運行在 Kubernetes 以外的應(yīng)用程序。通過 NGINX Kubernetes Ingress Controller 集成,它們務(wù)可以與網(wǎng)格服務(wù)通信,反之亦然。

NSM 通過將加密和身份驗證無縫應(yīng)用于容器流量來確保零信任環(huán)境中的應(yīng)用程序安全。它具有對進出流量的可觀察性和洞察力,來幫助用戶快速準(zhǔn)確地部署和解決問題。它還提供了細粒度的流量控制,使 DevOps 團隊可以部署和優(yōu)化應(yīng)用程序組件,同時使 Dev 團隊可以構(gòu)建并輕松連接其分布式應(yīng)用程序。

什么是 NGINX 服務(wù)網(wǎng)格?

NSM 有一個用于東西向(服務(wù)到服務(wù))流量的統(tǒng)一數(shù)據(jù)平面,以及一個本地集成的用于南北向流量的 NGINX Plus 入口控制器,它由單獨的一個控制平面進行管理。

控制平面是為 NGINX Plus 數(shù)據(jù)平面設(shè)計和優(yōu)化的,并定義了分配給 NGINX Plus sidecar 容器的流量管理規(guī)則。

NGINX 服務(wù)網(wǎng)格架構(gòu)圖

通過 NSM,sidecar 容器代理與網(wǎng)格中的每個服務(wù)一同部署,它們與以下開源解決方案集成:

  • Grafana —— Prometheus 指標(biāo)的可視化;內(nèi)置的 NSM 儀表板可幫助您入門?

  • Kubernetes Ingress controllers ——管理網(wǎng)格的入口和出口流量?

  • SPIRE ——證書頒發(fā)機構(gòu),用于管理,分發(fā)和輪換網(wǎng)格的證書?

  • NATS ——可伸縮的消息傳遞平面,用于從控制平面向 sidecar 容器傳遞消息,例如路由更新?

  • Open Tracing ——分布式跟蹤(同時支持 Zipkin 和 Jaeger)?

  • Prometheus ——從 NGINX Plus sidecar 容器中收集和存儲指標(biāo),例如請求數(shù),連接數(shù)和 SSL 握手?jǐn)?shù)。

功能和組件

NGINX Plus 作為數(shù)據(jù)平面跨越了 sidecar 代理(東西方流量)和入口控制器(南北流量),同時攔截和管理服務(wù)容器之間的流量。功能包括:

  • TLS (mTLS) 身份驗證?

  • 負載均衡?

  • 高可用性?

  • 限速?

  • 熔斷?

  • 藍綠和金絲雀部署?

  • 訪問控制

NGINX 服務(wù)網(wǎng)格入門

要開始使用 NSM,您首先需要:

?有一個可以訪問的 Kubernetes 環(huán)境。NGINX Service Mesh 可以支持多個 Kubernetes 平臺,包括 Amazon Kubernetes 彈性容器服務(wù) (EKS),Azure Kubernetes 服務(wù) (AKS),Google Kubernetes 引擎 (GKE),VMware vSphere 和獨立的裸機群集。?在要安裝 NSM 的機器上安裝 kubectl 命令行程序。?下載 NGINX Service Mesh 發(fā)布包。該軟件包包括 NSM 鏡像,需要將鏡像上傳到 Kubernetes 集群可訪問的私有容器倉庫中。該軟件包還包括用于部署 NSM 的 nginx-meshctl 二進制文件。

要使用默認(rèn)設(shè)置部署 NSM,請運行以下命令。在部署過程中,該跟蹤確認(rèn)網(wǎng)格組件的成功部署,最后確認(rèn) NSM 在其自己的命名空間中運行:

$ DOCKER_REGISTRY=your-Docker-registry ; MESH_VER=0.6.0; \./nginx-meshctl deploy  \--nginx-mesh-api-image "${DOCKER_REGISTRY}/nginx-mesh-api:${MESH_VER}" \--nginx-mesh-sidecar-image "${DOCKER_REGISTRY}/nginx-mesh-sidecar:${MESH_VER}" \--nginx-mesh-init-image "${DOCKER_REGISTRY}/nginx-mesh-init:${MESH_VER}" \--nginx-mesh-metrics-image "${DOCKER_REGISTRY}/nginx-mesh-metrics:${MESH_VER}"Creatednamespace"nginx-mesh".CreatedSpiffeID CRD.WaitingforSpire pods to be running...done.DeployedSpire.Deployed NATS server.Created traffic policy CRDs.DeployedMesh API.DeployedMetrics API Server.DeployedPrometheusServer nginx-mesh/prometheus-server.DeployedGrafana nginx-mesh/grafana.Deployed tracing server nginx-mesh/zipkin.All resources created.Testing the connection to the ServiceMesh API Server...Connected to the NGINX ServiceMesh API successfully.NGINX ServiceMeshis running.

對于其他命令選項,包括非默認(rèn)設(shè)置,請運行:

$ nginx-meshctl deploy –h

要驗證 NSM 控制平面在 nginx-mesh 命名空間中是否正常運行,請運行:

$ kubectl get pods –n nginx-meshNAME                                 READY   STATUS    RESTARTS   AGEgrafana-6cc6958cd9-dccj6             1/1Running02d19hmesh-api-6b95576c46-8npkb1/1Running02d19hnats-server-6d5c57f894-225qn1/1Running02d19hprometheus-server-65c95b788b-zkt95   1/1Running02d19hsmi-metrics-5986dfb8d5-q6gfj         1/1Running02d19hspire-agent-5cf871/1Running02d19hspire-agent-rr2tt                    1/1Running02d19hspire-agent-vwjbv                    1/1Running02d19hspire-server-02/2Running02d19hzipkin-6f7cbf5467-ns6wc              1/1Running02d19h

根據(jù)設(shè)置手動或自動注入策略的部署選項,默認(rèn)情況下,NGINX sidecar 代理會注入已部署的應(yīng)用程序中。要了解如何禁用自動注入,請參閱我們的 文檔。例如,如果我們將 sleep 應(yīng)用程序部署在默認(rèn)名稱空間中,然后檢查 Pod,我們會看到兩個容器正在運行—— sleep 應(yīng)用程序和關(guān)聯(lián)的 NGINX Plus sidecar 容器:

$ kubectl apply –f sleep.yaml $ kubectl get pods –n defaultNAME                     READY   STATUS    RESTARTS   AGEsleep-674f75ff4d-gxjf2   2/2Running05h23m

您還可以通過運行以下命令以將 sidecar 暴露到本地,從而使用 本地 NGINX Plus 儀表板 監(jiān)視 sleep 應(yīng)用程序:

$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886

然后在瀏覽器中導(dǎo)航到 http://localhost:8080/dashboard.html 您還可以連接到 Prometheus 服務(wù)器以監(jiān)視 sleep 應(yīng)用程序。

您可以在 Kubernetes 中使用自定義資源來配置流量策略,例如訪問控制,速率限制和熔斷。

到此,關(guān)于“NGINX服務(wù)網(wǎng)格是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI