Deployment Guide

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高可用部署。

为了成功部署高可用,你需要参照以下的说明。

  1. 首先你得准备一个istio的多集群,部署的模式为 https://istio.io/latest/docs/setup/install/multicluster/multi-primary/

  2. 在Istio部署的两个集群(假设名为 cluster1、cluster2)中分别执行 SolarMesh的管理集群 的安装。

  3. 在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

  1. 测试。你访问 web1.solarmesh.cn ,然后查看 两个集群中的 solar-controller 对应的 pod 的日志。当你看到 日志是轮询产生的时候,说明 SolarMesh的管理集群 已经高可用部署成功了。

  2. 安装SolarMesh业务集群

  3. 注册业务集群。注意,你需要在Istio安装的cluster1、cluster2中都执行注册业务集群的命令。

  4. 其他。高可用部署 部署的模式下,目前 SolarMesh功能中通配策略 现在还无法高可用 ,你需要在Istio的cluster1、cluster2中都配置相应的策略。