https://mp.weixin.qq.com/s/uyMmVum5midT8uhC0HDJPw

初识 NGINX 服务网格

NGINX开源社区 今天

以下文章来源于Cloud Native Community ,作者NGINX

Cloud Native Community

云原生社区是一个企业中立的云原生终端用户社区,致力于推广云原生技术,构建开发者生态。

译 者 :台慧敏

校 对 :林   静

原 文 :https://www.nginx.com/blog/introducing-nginx-service-mesh/amp/

此版本 NGINX Service Mesh (NSM) 是一个高度集成的轻量级的服务网格的开发版本,它利用 NGINX Plus 支持的数据平面来管理 Kubernetes 环境中的容器流量。NSM 可以免费 下载。非常希望广大开发者们能在开发和测试环境中尝试一下,期待你们在 GitHub 仓库留下对 NSM 的反馈。

随着部署规模的扩大并且变得越来越复杂,微服务的落地也变得很有挑战。服务之间的通信错综复杂,在系统中调试问题可能会更加困难,并且服务增多意味着需要管理更多的资源。

NSM 通过使用户集中配置来解决以上挑战:

•安全——如今安全比以往任何时候都更加重要,数据泄露每年可能使组织损失数百万美元的收入和声誉。NSM 确保所有通信均经过 mTLS 加密,因此网络上没有敏感数据可被黑客窃取。通过访问控制可以定义策略来控制哪些服务可以相互通信。•流量管理——在部署应用程序的一个新版本时,用户可能希望先限制新版本应用程序接收的流量,以防可能存在 bug。使用 NSM 智能容器流量管理,用户可以指定限制流量到新服务的策略,并随着时间的推移逐渐增加流量。限流和断路器等功能使用户可以完全控制流经服务的流量。•可视化——管理数千个服务对于调试和可见性可能是一个噩梦。NSM 通过内置的 Grafana 仪表板在 NGINX Plus 中显示可用的全套指标来帮助用户解除这个噩梦。此外,Open Tracing 的集成实现了细粒度的事务跟踪。•混合部署——如果用户的企业像大多数企业一样,整个基础架构不完全在 Kubernetes 中运行。NSM 确保不会遗漏运行在 Kubernetes 以外的应用程序。通过 NGINX Kubernetes Ingress Controller 集成,它们务可以与网格服务通信,反之亦然。

NSM 通过将加密和身份验证无缝应用于容器流量来确保零信任环境中的应用程序安全。它具有对进出流量的可观察性和洞察力,来帮助用户快速准确地部署和解决问题。它还提供了细粒度的流量控制,使 DevOps 团队可以部署和优化应用程序组件,同时使 Dev 团队可以构建并轻松连接其分布式应用程序。

什么是 NGINX 服务网格?

NSM 有一个用于东西向(服务到服务)流量的统一数据平面,以及一个本地集成的用于南北向流量的 NGINX Plus 入口控制器,它由单独的一个控制平面进行管理。

控制平面是为 NGINX Plus 数据平面设计和优化的,并定义了分配给 NGINX Plus sidecar 容器的流量管理规则。

NGINX 服务网格架构图

通过 NSM,sidecar 容器代理与网格中的每个服务一同部署,它们与以下开源解决方案集成:

•Grafana —— Prometheus 指标的可视化;内置的 NSM 仪表板可帮助您入门•Kubernetes Ingress controllers ——管理网格的入口和出口流量•SPIRE ——证书颁发机构,用于管理,分发和轮换网格的证书•NATS ——可伸缩的消息传递平面,用于从控制平面向 sidecar 容器传递消息,例如路由更新•Open Tracing ——分布式跟踪(同时支持 Zipkin 和 Jaeger)•Prometheus ——从 NGINX Plus sidecar 容器中收集和存储指标,例如请求数,连接数和 SSL 握手数。

功能和组件

NGINX Plus 作为数据平面跨越了 sidecar 代理(东西方流量)和入口控制器(南北流量),同时拦截和管理服务容器之间的流量。功能包括:

•TLS (mTLS) 身份验证•负载均衡•高可用性•限速•熔断•蓝绿和金丝雀部署•访问控制

NGINX 服务网格入门

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

•有一个可以访问的 Kubernetes 环境。NGINX Service Mesh 可以支持多个 Kubernetes 平台,包括 Amazon Kubernetes 弹性容器服务 (EKS),Azure Kubernetes 服务 (AKS),Google Kubernetes 引擎 (GKE),VMware vSphere 和独立的裸机群集。•在要安装 NSM 的机器上安装 kubectl 命令行程序。•下载 NGINX Service Mesh 发布包。该软件包包括 NSM 镜像,需要将镜像上传到 Kubernetes 集群可访问的私有容器仓库中。该软件包还包括用于部署 NSM 的 nginx-meshctl 二进制文件。

要使用默认设置部署 NSM,请运行以下命令。在部署过程中,该跟踪确认网格组件的成功部署,最后确认 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.

对于其他命令选项,包括非默认设置,请运行:

$ 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

根据设置手动或自动注入策略的部署选项,默认情况下,NGINX sidecar 代理会注入已部署的应用程序中。要了解如何禁用自动注入,请参阅我们的 文档。例如,如果我们将 sleep 应用程序部署在默认名称空间中,然后检查 Pod,我们会看到两个容器正在运行—— sleep 应用程序和关联的 NGINX Plus sidecar 容器:

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

您还可以通过运行以下命令以将 sidecar 暴露到本地,从而使用 本地 NGINX Plus 仪表板 监视 sleep 应用程序:

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

然后在浏览器中导航到 http://localhost:8080/dashboard.html 您还可以连接到 Prometheus 服务器以监视 sleep 应用程序。

您可以在 Kubernetes 中使用自定义资源来配置流量策略,例如访问控制,速率限制和熔断。有关更多信息,请参见 文档。

总结

NGINX Service Mesh 可从 F5 portal 免费下载。请在您的开发和测试环境中试用,然后在 GitHub 上提交您的反馈。要试用 NGINX Plus Ingress Controller,请立即开始 30 天免费试用,或与我们联系以讨论您的应用用例。

引用链接

[1] NGINX Plus: https://www.nginx.com/products/nginx/
[2] 下载: https://downloads.f5.com/
[3] 文档: https://docs.nginx.com/nginx-service-mesh/usage/inject-sidecar-proxy/
[4] 本地 NGINX Plus 仪表板: https://www.nginx.com/products/nginx/live-activity-monitoring
[5] 文档: https://docs.nginx.com/nginx-service-mesh/
[6] F5 portal: https://login.f5.com/resource/login.jsp?ctx=719748
[7] GitHub: https://github.com/nginxinc/nginx-service-mesh/issues

初识 NGINX 服务网格相关推荐

  1. NGINX访谈:软件负载均衡、API网关和服务网格的企业采用状况

    InfoQ最近采访了NGINX公司的Rob Whiteley.Sidney Rabsatt和Liam Crilly,和他们讨论了他们对于未来网络和数据中心通信的想法.NGINX公司的目标是成为&quo ...

  2. Consul和服务网格的智能网络

    在过去的一年里,服务网格技术获得了极大的兴趣.尽管服务网格的概念并不新鲜,但是实现细节对某些人来说却是新鲜的.HashiCorp Consul是一个开源工具,提供服务发现.健康检查.负载均衡和全局分布 ...

  3. 服务网格架构激活了容器网络管理—来自于服务网格创建者们的见解与展望

    译者注:本文将是您了解和评估何时以及如何采纳服务网格的最佳参考资料.本文采访了服务网格的缔造者Buoyant创始人,Isito的产品经理,Enovy架构师Matt Klein等人,分别就谁应该何时以何 ...

  4. 如何用 Nacos 构建服务网格生态

    Nacos 简介 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称.目标是构建一个更易于构建云原生应用的动态服务发现.配 ...

  5. Istio 网关之南北向流量管理(内含服务网格专家亲自解答)

    作者 | 王夕宁  阿里巴巴高级技术专家 参与阿里巴巴云原生公众号文末留言互动,有机会获得赠书福利! 本文摘自于由阿里云高级技术专家王夕宁撰写的<Istio 服务网格技术解析与实践>一书, ...

  6. kubesphere服务网格servicemesh(Istio)示例:部署 Bookinfo 和管理流量

    Istio,作为一种开源服务网格解决方案,为微服务提供了强大的流量管理功能.以下是 Istio 官方网站上关于流量管理的简介: Istio 的流量路由规则可以让您很容易的控制服务之间的流量和 API ...

  7. 如何用 Nacos 构建服务网格生态?

    简介:Nacos 在阿里巴巴起源于 2008 年五彩石项目(该项目完成微服务拆分和业务中台建设),成长于十年的阿里双十一峰值考验,这一阶段主要帮助业务解决微服务的扩展性和高可用问题,解决了百万实例扩展 ...

  8. 深度剖析Service Mesh服务网格新生代Istio

    作者简介:敖小剑,十五年软件开发经验,微服务专家,专注于基础架构,Cloud Native拥护者,敏捷实践者.曾在亚信.爱立信.唯品会和ppmoney任职, 现任数人云资深架构师,本文由数人云独家授权 ...

  9. 微服务(Microservices)和服务网格(Service Mesh)架构概念整理

    微服务(Microservices) 在过去的 2016 年和 2017 年,微服务技术迅猛普及,和容器技术一起成为这两年中最吸引眼球的技术热点.而以 Spring Cloud 为代表的传统侵入式开发 ...

最新文章

  1. windows 如何配置 Go 环境(Zip archive 方式)?
  2. linux grouplist groupinstall groupremove 简介
  3. 下载并导出数据到execl中
  4. c语言填空题删除字符串k右边,计算机二级C语言上机模拟试题及解题思路
  5. Java的jdk1.6与jre1.8中存在的差异
  6. selenium环境搭建,浏览器驱动安装
  7. Intel 的20G 源代码和内部机密文档被泄漏
  8. C语言sb代码,10个重要的算法C语言实现源代码
  9. 蜀门一直显示连接服务器,蜀门自身状态增加不召唤仙宠BUG玩法全解 利用的服务器自身...
  10. Android初学者的疑惑与“死板”的Android初学之路
  11. STK10与MATLAB互联
  12. Yeti Feather贴图着色与Arnold 渲染
  13. 2023真无线蓝牙耳机推荐:高性价比真无线蓝牙耳机各价位蓝牙耳机推荐!
  14. html最多显示两行,css 实现两行或多行文本溢出显示省略号(...)
  15. 步进电机c语言驱动原理,《步进电机【驱动电路+C语言驱动程序】》.doc
  16. 洗地机排名前十的产品、洗地机品牌排行榜最新公布
  17. 3D建模入门学习方法,制作过程的六个主要阶段讲解
  18. Java基础21 多线程线程两种实现方式 锁
  19. stm32f769 寄存器配置SD卡---移植fatfs
  20. 大模型分布式训练技术

热门文章

  1. python中time模块的时间戳和格式化日期_Python中的time模块与datetime模块
  2. html表格宽度设置相同,我如何使HTML表格的宽度与其包含的div标签相同?
  3. linux打开mysql某张表_Linux——MySQL多表连接
  4. python给内置函数重命名_python – 以Pandas Groupby函数重命名列名
  5. java集合转labelpoint_java – 向Spark ML LabeldPoint添加自定义字段
  6. videocapture 保存图片_RoboMaster视觉教程OpenCV(二)读取视频图像与转换
  7. java操作oracle数据_Java连接Oracle数据库操作
  8. 计算机一级重点知识,计算机一级MSOffice考试重点:数制的基本概念
  9. 抢红包 动画 android,疯狂猜动画红包版
  10. 安卓设置原生alert设置圆角_每个月流量都超额?安卓、苹果用户可以尝试更改这些设置...