Flomesh快速上手

本文介绍了如何快速运行Flomesh服务网格,阅读大该需要2分钟;完成其中的例子需要一些基础的Linux知识,以及大概20分钟的安装等待。

Flomesh简介

Flomesh是一个服务网格(Service Mesh)的实现,用于应用间流量管理,主要的功能包括:

  • 应用间的访问控制
  • 应用间流量的控制,比如限速、限流、熔断保护等
  • 应用之间的拓扑与调用关系可视化
  • 应用间流量指标的统计、分析、展示等

相比于其他服务网格(Service Mesh)的实现,Flomesh主要的差异和特点在于:

  • Flomesh不绑定到任何的服务框架,不绑定到任何的编程框架
  • Flomesh可以支持多种常见的应用间协议,并且Flomesh基于可扩展的架构,可以快速开发支持更多协议
  • Flomesh可以跨地域、跨数据中心运行,除了适用于高速的数据中心网络,也适用于非数据中心的网络环境,包括边缘计算环境
  • Flomesh内置了多种微服务框架的支持,可以开箱即用的和kubernetes、SpringCloud/Eureka、Dubbo/Zookeeper集成。Flomesh的微服务集成采用可扩展的框架设计,可以快速适配到各种微服务框架,实现一键集成
  • Flomesh的指标监控系统结合了基于内存的实时统计引擎和Prometheus的历史数据统计能力,具备更好的实时流量管控能力
  • Flomesh面向企业用户设计,内置了工作流引擎,可以快速的定制基于角色的审批类型工作流
  • Flomesh内置了丰富灵活的权限体系,适合大型组织使用
  • Flomesh具有极小的起步安装、部署、运行要求,如当前例子所示,在一个1C2G的虚拟机使用一条安装命令就可以完整运行Flomesh单机环境

Flomesh的完整介绍请参考这里。

在线演示

最简单的方法体验Flomesh是访问我们的在线演示环境。成本原因,我们这个环境是运行在最低价格的aws环境里,另外并非总是有人及时维护这个环境,所以如果遇到问题,也不要奇怪~体验Flomesh最好的办法还是部署自己的环境,也很简单。

在线的演示的地址是:http://demo.flomesh.cn,登录用户和密码都是admin。Enjoy it!

快速部署测试环境

目前我们提供两种快速部署的办法: 在线安装和离线安装。如果在一个网络条件好的环境,比如公有云上,那么可以选择在线安装;如果网络条件不稳定,或者希望在离线环境部署,那么可以选择离线安装。

在线安装

在一个最小化安装的centos7上,执行如下命令:

curl -sfLk http://flomesh.cn/assets/install.sh | sh -

离线安装

在一个最小化安装的centos7上,执行如下命令:

curl -O /tmp/flomesh-aio.tar.gz  http://flomesh.cn/flomesh-aio.tar.gz
cd /tmp/
tar xzvf flomesh-aio.tar.gz
cd flomesh
bash install.sh

简洁模式

如果已经对flomesh有一定了解,想减少下载时间和降低安装组件的数量,可以选择“简介模式”。相比All-in-one模式,简介模式(Express)主要的差异在于:

  • 没有安装日志组件(ElasticSearch)
  • 没有安装分布式跟踪组件(Jaeger)
  • 没有安装演示用微服务(Bookinfo)

安装过程如下,相比all-in-one模式,可以节省大概300M下载(主要是容器镜像):

curl -O /tmp/flomesh-express.tar.gz  http://flomesh.cn/flomesh-express.tar.gz
cd /tmp/
tar xzvf flomesh-express.tar.gz
cd flomesh
bash install.sh

演示应用

参考istio的做法,flomesh也提供了一个用于演示的bookinfo微服务程序。这个程序是flomesh团队从istio的bookinfo程序和redhat的bookinfo程序拼凑而成。关于这个演示应用的具体介绍可以参考这里

演示拓扑

部署后验证

假设部署所用的centos7的IP地址是flomesh-ip,那么访问http://flomesh-ip:8080,您将会看到如下的登陆界面:

登陆

输入用户admin,密码admin,点击登陆,看到如下的Dashboard,那么Flomesh就成功运行起来了。

看板

如果想快速的熟悉操作界面,可以从这里开始


备注

  • 该单机环境适合用作功能验证和演示使用,不适合生产使用
  • 该单机环境运行在k3s上,感谢k3s团队带来的便利,k3s牛逼~
  • flomesh运行在8080端口,包括控制平面GraphQL接口和图形界面。默认登陆用户密码是admin/admin
  • 该环境使用了kong作为HTTP流量管理工具,代理运行在8000/8443端口,管理接口运行在8001/8444端口
  • 该环境使用了piped作为非HTTP流量管理工具和性能统计工具,运行在1080端口
  • 该环境使用了prometheus作为监控工具,运行在9090端口
  • 该环境使用了elastissearch作为日志存储,运行在9200端口。这里使用了5.6版本,主要原因是该版本尺寸较小,同时能够满足需求
  • 该环境使用了jaeger作为分布式跟踪工具,其查询接口运行在80端口。Flomesh也支持使用Skywalking作为分布式跟踪系统
  • demo环境提供了一个基于spring boot的演示程序和一个dubbo演示程序,部署在不同的name space里边。其中spring boot演示程序,来自istio的bookinfo程序。如果想在本地部署这些例子,可以选择完整的“离线安装”