使用 MOSN 构建 SOFAMesh

使用 MOSN 构建 SOFAMesh

注意:本书中的 Service Mesh 章节已不再维护,请转到 istio-handbook 中浏览。

本文介绍的内容将包括 :

至于 SOFAMesh 的使用跟 Istio 没有区别,只是截止本文发稿时 MOSN 的流量管理只支持:

  • 按 version 路由

  • 按 weight 路由

  • 按照特定 header 路由

其他更高级功能仍在进一步开发中。

MOSN 与 SOFAMesh 的关系

MOSN 是使用 Go 语言开发的 Service Mesh 数据平面代理,而 SOFAMesh 则是基于 Istio 改进和扩展而来的 Service Mesh 大规模落地实践方案, MOSN SOFAMesh 的关键组件。目前由于 MOSN 相比 Envoy 做了一些改造,无法在 Istio 下直接使用,所以本文的实验需要在 SOFAMesh 体系中进行。下图是 SOFAMesh 整体框架下,MOSN 的工作示意图。

MOSN 架构图

部署 SOFAMesh

我们直接使用 sofa-mesh-demo.yaml 文件来安装 SOFAMesh,不过在安装前你需要先使用 kubernetes-vagrant-centos-cluster 安装 Kubernetes 集群,建议安装 Kubernetes 1.11+,并在你的本地电脑上安装 kubectl 命令行工具。

执行下面的命令部署 SOFAMesh。

MOSN in SOFAMesh

部署完成后,我们再检查下在 istio-system 命名空间下启动的 pod 和 service。

注意:因为我的集群不支持 LoadBalancer ,所以istio-ingressgateway 服务我们使用 NodePort 方式对外暴露。

参考

Last updated

Was this helpful?