SolarMesh简介
SolarMesh是基于服务网格构建的微服务监管平台。SolarMesh基于 Istio 及容器技术,提供微服务流量监控和管理,提供完善的非侵入式服务治理解决方案,在提供Istio流量管理等基础能力外,还提供多集群纳管、监控告警、Wasm插件、注册中心、虚拟机、接口流量、访问日志、Istio组件金丝雀升级等能力,帮助企业在纷繁复杂的微服务调度中快速定位问题,提高研发效率。
安装
准备工作
- 准备一个Kubernetes集群(推荐1.20版本以上);
- 安装Istio;
- 安装Istio相关Addon(Kilai、Prometheus);
- 下载solarmesh安装包。
准备完毕后,检查一下集群环境。可以参考如下:
下载solarmesh安装包:
wget http://release.solarmesh.cn/solar/v1.11/solar-v1.11.4-linux-amd64.tar.gz
tar -xvf solar-v1.11.4-linux-amd64.tar.gz
export PATH=$PATH:$PWD/solar/bin/
chmod +x $PWD/solar/bin/solarctl
检查
~ solarctl version
solarctl version: v1.11.4
solar controller version: unkonw
control plane version: 1.11.5
安装架构及术语
术语:
控制集群:SolarMesh控制平面所在集群
业务集群:SolarMesh控制平面纳管的集群
控制平面:SolarMesh控制组件Solar-Controller
数据平面:SolarMesh代理组件
架构:
一个控制集群,一个业务集群。控制集群部署solar-controller,业务集群部署agent,然后将业务集群注册到控制集群。
安装SolarMesh控制平面
solarctl install solar-mesh
检查
➜ ~ kubectl get po -n service-mesh
NAME READY STATUS RESTARTS AGE
solar-controller-6976b7f9fc-jp6p2 2/2 Running 0 91s
solar-controller-6976b7f9fc-w8qq7 2/2 Running 0 90s
➜ ~ kubectl get po -n solar-operator
NAME READY STATUS RESTARTS AGE
solar-operator-ccbb5b469-frmrm 1/1 Running 0 51s
配置登录账号
➜ ~ kubectl create secret generic admin --from-literal=username=admin --from-literal=password=admin -n service-mesh
secret/admin created
➜ ~ kubectl label secret admin app=solar-controller -n service-mesh
secret/admin labeled
安装SolarMesh数据平面
安装初始化
export ISTIOD_REMOTE_EP=$(kubectl get nodes|awk '{print $1}' |awk 'NR==2'|xargs -n 1 kubectl get nodes -o jsonpath='{.status.addresses[0].address}')
solarctl operator init --external-ip $ISTIOD_REMOTE_EP --eastwest-external-ip $ISTIOD_REMOTE_EP
安装数据平面
在业务集群安装数据平面。
kubectl apply -f - <<EOF
apiVersion: install.solar.io/v1alpha1
kind: SolarOperator
metadata:
name: cluster01
namespace: solar-operator
spec:
istioVersion: "1.11" ## 对应您Istio的安装版本
profile: default
EOF
检查
➜ ~ kubectl get po -n service-mesh
NAME READY STATUS RESTARTS AGE
networking-agent-7587df774-7m96x 3/3 Running 1 91s
networking-agent-7587df774-tbtkg 3/3 Running 1 91s
solar-controller-6976b7f9fc-jp6p2 2/2 Running 0 8m17s
solar-controller-6976b7f9fc-w8qq7 2/2 Running 0 8m16s
注册业务集群
在业务集群中执行:
solarctl register --name cluster01 # 这里的name需要与您安装的istio集群名称一致
访问
kubectl patch svc solar-controller -n service-mesh -p '{
"spec": {
"ports": [{
"name": "http-8080",
"nodePort": 30880,
"port": 8080,
"protocol": "TCP",
"targetPort": 8080}],
"type": "NodePort"
}
}'
界面如下图: