SolarMesh部署指南 #
提高可用性 #
理论情况下,SolarMesh组件服务所拥有副本数越多,SolarMesh服务所对应的可用性就越高。
默认SolarMesh 安装的 solar-controller 与 networking-agent 组件都是2个副本,如果您需要增减副本数,您可以通过修改 solar-controller 与 networking-agent 的deployment资源去达到您的目的。
默认 solar-controller 与 networking-agent 已经配置了pod反亲和性使其更倾向分散部署到不同的node节点,以提高可用性。如果您需要更优的配置,您可以通过直接修改 solar-controller 与 networking-agent 的deployment资源去达到您的目的。
高可用部署 #
如果您熟练使用istio多集群的安装与配置,并需要solar-controller 支持多集群级别的高可用,我们的solar-controller 可以部署在istio多集群形态中,这是我们最终形态的SolarMesh高可用部署。
为了成功部署高可用,你需要参照以下的说明。
-
首先你得准备一个istio的多集群,部署的模式为 https://istio.io/latest/docs/setup/install/multicluster/multi-primary/ 。
-
在Istio部署的两个集群(假设名为 cluster1、cluster2)中分别执行 SolarMesh的管理集群 的安装。
-
在Istio部署的cluster1、cluster2集群中配置 Istio 的 Gateway 与 VirtualService 资源,使流量可以通过网关配置的域名访问到 solar-controller 组件。后续你访问SolarMesh就使用你现在配置的域名。
如下cluster1的配置:你得保证你的域名是可访问的
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: gw
namespace: service-mesh
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "web1.solarmesh.cn"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: vs
namespace: service-mesh
spec:
hosts:
- "*"
gateways:
- gw
http:
- route:
- destination:
host: solar-controller
port:
number: 8080
-
测试。你访问 web1.solarmesh.cn ,然后查看 两个集群中的 solar-controller 对应的 pod 的日志。当你看到 日志是轮询产生的时候,说明 SolarMesh的管理集群 已经高可用部署成功了。
-
注册业务集群。注意,你需要在Istio安装的cluster1、cluster2中都执行注册业务集群的命令。
-
其他。高可用部署 部署的模式下,目前 SolarMesh功能中通配策略 现在还无法高可用 ,你需要在Istio的cluster1、cluster2中都配置相应的策略。