Service mesh(服务网格) 正迅速成为云原生堆栈的重要组成部分,尤其是对于 Kubernetes 平台的用户而言。服务网格提供了关键的可观察性、安全性及流量控制,这样您的 Kubernetes 应用就无需实施这些特性,从而使开发人员能够专注于优化业务逻辑。
NGINX Service Mesh 是我们全面集成式的服务网格平台。它提供了服务网格的所有优势,同时利用基于 NGINX Plus 的数据平面支持 mTLS、流量管理及高可用性等关键特性。
NGINX Service Mesh 1.1.0 版引入了三个关键增强功能,有助于在 Kubernetes 中更轻松地部署并管理我们的生产就绪型服务网格:Helm 支持、物理隔离安装及就地升级。
Helm 支持
NGINX Service Mesh 包括 nginx-meshctl
CLI 工具,可作为任何 CI/CD 流水线的一部分进行完全可脚本化的安装、升级和移除。但 CLI 不一定是管理 Kubernetes 服务的首选方案。NGINX Service Mesh 1.1.0 版增加了对 Helm的支持,它是一套常见的广受推崇的工具,支持自动创建、配置和封装应用与服务并将其部署至 Kubernetes。
要在 NGINX Service Mesh 中使用 Helm,首先需要添加 helm 存储库:
# helm repo add nginx-service-mesh https://helm.nginx.com/nginx-service-mesh
# helm repo update
然后,将带有所选 release-name 的 chart 安装至专用命名空间。
# helm install release-name nginx-service-mesh –n nginx-mesh-namespace
有关部署支持 Helm 的 NGINX Service Mesh 的更多信息,请参阅我们的文档。
物理隔离安装
根据标准的 Kubernetes 实践,默认情况下,NGINX Service Mesh 在部署时会从多个 Kubernetes 支持的仓库中拉取控制平面和数据平面的容器镜像。一些镜像来自公共 NGINX 容器仓库,而其他镜像(例如 Prometheus 和 Grafana)则来自公共仓库。这一模型更适用于具有公共出站访问的 Kubernetes 环境,并不适合没有直接公共出站访问的受限的、被锁定的且更安全的 Kubernetes 环境。
NGINX Service Mesh 1.1.0 版引入了物理隔离安装支持,您可以预拉取镜像,并将其推送至仅可从内部 Kubernetes 环境中访问的自有专用镜像仓库。
当将预拉取的镜像推送到您的私有仓库服务器时,您必须使用文档文档中指定的镜像名称和标签。然后,您可在 nginx-meshctl
deploy
命令中添加 --disable-public-images
,从而命令 NGINX Service Mesh 从私有仓库服务器中拉取镜像:
# nginx-meshctl deploy --registry-server your-private-registry --disable-public-images
就地升级
之前,升级 NGINX Service Mesh 时有两种选择:在安装更新的版本前移除正在运行的部署,或者将更新的版本部署至单独的集群并将用户迁移进来。这两种方法都不太理想,因为在更新前,您必须重新部署由网格管理的服务。
NGINX Service Mesh 1.1.0 引入了就地升级支持,可减少中断体验。此外,所有所需容器镜像和 NGINX Service Mesh 控制平面均会自动升级,自定义资源定义 (CRD) 也可维持不变。
您可以安装 nginx-meshctl
命令行工具并运行以下命令,从而将当前部署升级到最新版本。
# nginx-meshctl upgrade
注:执行就地升级时,数据平面 sidecar 在重新部署或纵向扩展前继续通过先前版本运行。如果进行了纵向扩展,新的 Pod 将运行最新版 sidecar。
结语
NGINX Service Mesh 1.1.0 继续致力于提升用户体验 — 请参阅版本说明,了解有关这一版本的更多信息,并在 F5 下载页面上免费下载 NGINX Service Mesh 以立即开始使用。您可以将其部署至您的开发、测试及生产环境,并在GitHub 上提交反馈。不确定是否准备好使用服务网格?请观看由服务网格专家主讲的网络研讨会“是否准备好使用服务网格?从心动转向行动”。
为了充分利用 NGINX Service Mesh,我们建议搭配使用 NGINX Ingress Controller,以便能够同时管理出入向流量。以下演示和 NGINX 工程师 Kate Osborn 撰写的相关博文介绍了如何结合使用 NGINX Service Mesh 和基于 NGINX Plus 的 NGINX Ingress Controller,从而简化 Kubernetes 出入向流量管理。立即下载 30 天免费试用版 NGINX Ingress Controller,或与我们联系以讨论您的用例。