>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
JavaScript

Layer5如何让Kubernetes和服务网格对开发者更友好

Layer5 logo

当一个项目扩展到十几个微服务时,基础设施管理就变成了一团乱麻。开发者写代码,运维人员努力理解清单文件(manifests),而当故障发生时,大家互相推诿。这是一个常见的情况,但并不令人愉快。

在某次偶然的机会中,我发现了Layer5仓库。从本质上讲,它是一个组织的旗舰项目,该组织开发了一整套用于处理Kubernetes和服务网格的开源工具。他们的主要理念是使基础设施可视化,并让开发者能够通过可视化方式控制基础设施,而无需手动重写数百行YAML。

项目中包含哪些内容

Layer5仓库作为多个独立工具的展示和集散中心。每个工具都针对基础设施栈中的特定任务。

Meshery

Meshery

这是一个用于Kubernetes和服务网格(如Istio、Linkerd或Consul)的管理仪表板。该工具可以连接到集群、读取当前拓扑结构、根据最佳实践验证配置,以及测试网络性能。

Kanvas

Kanvas

一个可视化基础设施编辑器。你不需要在终端中编辑清单文件,而是在交互式画布上构建架构。图表与集群实时同步,因此更改会立即对整个团队可见。

Nighthawk

Nighthawk

用于OSI模型第7层(HTTP、HTTPS、HTTP/2)的负载测试工具。它最初用C++编写,是Envoy的负载生成器,Layer5团队将其集成到他们的延迟和吞吐量测试场景中。

Catalog

Cloud Native Catalog和Patterns

一个用于Kubernetes的现成架构模式目录。如果你需要设置金丝雀发布或在服务版本之间分流流量,可以使用目录中经过验证的模板,而无需重复造轮子。

SMP

Service Mesh Performance和Sistent

SMP规范标准化了服务网格性能指标的收集,以便不同环境下的测试结果能够正确比较。而Sistent是他们自己的设计系统和React组件库,公司所有产品的Web界面都基于此构建。

Sistent

底层工作原理

该项目的大多数服务都是用Go和JavaScript编写的。对于集群集成,使用Meshery Operator,它被安装在Kubernetes内部并运行MeshSync组件。

Meshery Operator

MeshSync监听Kubernetes API事件并将资源状态转发到Meshery服务器。整个技术栈采用Apache 2.0许可证,因此代码完全开放,可供修改和本地部署。

你可以通过一条命令在本地机器上安装和启动Meshery CLI工具:

curl -L https://meshery.io/install | PLATFORM=kubernetes bash -
mesheryctl system start

启动后,会打开一个本地Web界面,你可以在其中选择所需的Service Mesh适配器、连接现有的kubeconfig,并开始分析流量。

实际应用场景

在哪些情况下Layer5工具包实际上节省了时间:

  1. 在采用前比较Service Mesh解决方案。如果你的团队正在Istio和Linkerd之间做出选择,基于Nighthawk的内置基准测试有助于运行相同的合成负载,并比较内存消耗与网络延迟。
  2. 新开发者入职。Kanvas中的可视化地图帮助新人更快地理解服务是如何连接的,而无需阅读Confluence中过时的图表。
  3. 配置审计。模式目录会指出清单文件中缺少资源限制的位置,或mTLS安全策略配置错误的位置。
  4. 云技术培训。内置的Layer5 Academy平台包含交互式练习,你可以在其中安全地练习,而不会冒风险搞垮生产集群。

Layer5 Academy

值得一试吗

Layer5原来是一个内容丰富的项目,包含大量子项目。一方面,由于实体众多,学习曲线可能看起来较陡:你需要弄清楚Meshery在哪里结束,Kanvas从哪里开始。另一方面,如果你的团队在维护Kubernetes上的微服务方面遇到了瓶颈,那么架构的可视化方法将消除一些日常繁琐工作。

最简单的入门方式是在本地Minikube或k3s上启动 mesheryctl。这样你就能立即看到可视化如何简化堆栈中网络问题的诊断。

相关项目