快速开始
本文用于帮助初次接触 MOSN 项目的开发人员,快速搭建开发环境,完成编译,测试,镜像制作和示例配置的运行。
- 如果您使用容器运行 MOSN,请先
- 如果您使用本地机器,请使用类 Unix 环境
- 安装 Go 的编译环境
获取代码
MOSN 项目的代码托管在 ,获取方式如下:
最终 MOSN 的源代码代码路径为
导入 IDE
使用您喜爱的 Go IDE 导入 mosn 项目,推荐 Goland。
在项目根目录下,根据自己机器的类型以及欲执行二进制的环境,选择以下命令编译 MOSN 的二进制文件。
MOSN 目前支持xDS v2 与 xDS v3,分别以Istio 1.5.2 和 Istio 1.10.6 为代表,可以根据需求在不同的版本支持之间切换。默认使用的是1.10.6版本。
切换到1.5.2 版本(xDS v2)
make istio-1.5.2
切换到1.10.6版本(xDS v3)
make istio-1.10.6
使用 docker 镜像编译
make build // 编译出 linux 64bit 可运行二进制文件
完成后可以在 build/bundles/${version}/binary
目录下找到编译好的二进制文件。
运行测试
支持两种环境来运行测试,如果有 docker 环境的,推荐使用 docker 环境,环境更干净可控。 MOSN 项目集成的 CI 是使用的 docker 环境来运行的。
使用 docker 环境运行测试
在项目根目录下执行如下命令:
# 单元测试
make unit-test
# 集成测试(较慢)
make integrate
make integrate-new
在项目根目录下执行如下命令:
# 单元测试
make ut-local
# 集成测试(较慢)
make integrate-local
# 新版集成测试(较慢)
make integrate-framework
运行 MOSN
运行下面的命令,将使用一个 启动 MOSN。
MOSN 配置说明
这个示例,我们模拟了经典的 service mesh 中,MOSN 作为 sidecar 的场景。
建议打开 ,阅读如下配置说明。
其中,appListener
这个 listener 监听了 2047
端口,使用 application
这个 router, router 内配置了 direct_response
,输出静态配置内容。 在这个示例里,模拟一个应用服务,App B
。
$ curl 'http://localhost:2047/'
Welcome to MOSN!
The Cloud-Native Network Proxy Platform.
流量代理转发
其中,serverListener
这个 listener 监听了 2046
端口,使用 server_router
这个 router, router 内配置启用了 proxy
这个 filter,转发到 serverCluster
这个 cluster。
在 cluster_manager
中可以看到 serverCluster
的具体配置:127.0.0.1:2047
,也就是上面的 。 serverListener
在示例里模拟了 MOSN B
,代理了 App B
的入口流量。
clientListener
和 serverListener
类似,由 2045
端口转发到 2046
。 模拟了 MOSN A
,代理了 App A
的入口流量。
剩下 App A
,我们可以通过 curl
来模拟:
$ curl 'http://localhost:2045/'
Welcome to MOSN!
以上就构建了 MOSN 作为 sidecar 的典型使用示例。 其他更多场景的用法,请参考 配置概览。
执行如下命令创建 docker image
make image
更多 MOSN 示例程序
参考 examples
目录下的示例工程。
使用 MOSN 搭建 Service Mesh 平台
请参考。