1 - 单机版安装
安装说明
北极星单机版包含以下4个组件:
- polaris-console:可视化控制台,提供服务治理管控页面
- polaris-server:控制面,提供数据面组件及控制台所需的后台接口
- prometheus:服务治理监控所需的指标汇聚统计组件
- pushgateway:prometheus推送网关,支持数据面通过推送方式上报监控数据到prometheus
北极星单机版默认占用以下端口:
- polaris-console:8080(http/tcp)
- polaris-server:8090(http/tcp,注册中心端口)、8091(grpc/tcp,注册中心端口)、8093(grpc/tcp,配置中心端口)
- prometheus:9090(tcp)
- pushgateway:9091(tcp)
单机版组网
单机版北极星,所有的组件都安装在用户机器上,作为多个独立进程提供服务。
安装服务端
环境准备
北极星单机版支持以下4种运行环境:
- Linux(64位)
- Windows(64位)
- Mac(64位)
- 容器化
单机版软件包
单机版的安装需要依赖单机版软件包,单机版软件包的命名格式为polaris-standalone-release_*.zip
:
下载地址
执行所有安装之前,需要下载软件包,可以从以下2个地址下载单机版软件包,请选择最新的release版本:
- Github下载:polaris standalone releases
- Gitee下载:polaris standalone releases
如果有需要自定义单机版相关组件的监听端口,在解压对应的单机版本压缩包后,修改压缩包内的port.properties文件后,执行安装脚本即可
port.properties 文件概览
polaris_eureka_port=8761
polaris_open_api_port=8090
polaris_service_grpc_port=8091
polaris_config_grpc_port=8093
polaris_prometheus_sd_port=9000
polaris_xdsv3_port=15010
polaris_console_port=8080
prometheus_port=9090
Linux
下载Linux单机版软件包(polaris-standalone-release_$version.linux.$arch.zip),执行安装命令:
unzip polaris-standalone-release_$version.linux.$arch.zip
cd polaris-standalone-release_$version.linux.$arch
bash install.sh
Windows
注意事项:
- 依赖powershell 5.0及以上版本(Windows 10及以上版本默认安装)
- 需要以管理员身份运行安装脚本,执行powershell需要进行授权操作
- 安装脚本可能遭到系统安全软件的误杀,请在安全软件中执行信任操作
下载Windows单机版软件包(polaris-standalone-release_$version.windows.$arch.zip),执行安装命令:
执行解压:polaris-standalone-release_$version.windows.$arch.zip
进入目录:polaris-standalone-release_$version.windows.$arch
执行脚本:install.bat
Mac
注意事项:
- 请在【关于本机】设置中查看Mac机器的芯片类型(Intel/Apple)
- Intel芯片请使用amd64的软件包,Apple芯片请使用arm64的软件包
下载Mac单机版软件包(polaris-standalone-release_$version.darwin.$arch.zip),执行安装命令:
unzip polaris-standalone-release_$version.darwin.$arch.zip
cd polaris-standalone-release_$version.darwin.$arch
bash install.sh
Docker 安装
执行一下命令即可
# Publish all exposed ports to random ports
docker run -d --publish-all polarismesh/polaris-server-standalone:latest
# Publish a container's port(s) to the host
docker run -d -p 15010:15010 -p 8080:8080 -p 8090:8090 -p 8091:8091 -p 8093:8093 -p 8761:8761 -p 9000:9000 -p 9090:9090 polarismesh/polaris-server-standalone:latest
docker 暴露的端口列表
EXPOSE 15010 8080 8090 8091 8093 8761 9000 9090
Kubernetes 安装
注意事项:
- 部署配置使用的是LoadBalancer类型的Service。如果您需要从k8s集群外访问北极星,且您的k8s集群不支持LoadBalancer,可以修改
installk8s/02-polaris-server.yaml
、installk8s/polaris-prometheus.yaml
中Service的类型,调整为NodePort。如果您的集群支持Ingress,也可以通过Ingress从集群外访问。
下载k8s部署文件(polaris-standalone-release_$version.kubernetes.zip),将文件拷贝到配置了kubectl的机器上,执行安装命令:
unzip polaris-standalone-release_$version.kubernetes.zip
kubectl create -f polaris-standalone-release_$version.kubernetes/
部署配置介绍:
- 00-polaris-console-config.yaml:创建名为polaris-console-config的Configmap,polaris-console组件的配置文件。
- 01-polaris-server-config.yaml:创建名为polaris-server-config的Configmap,polaris-server组件的配置文件。
- 02-polaris-server.yaml:创建名为polaris的StatefulSet ,其中包含了两个容器,分别是polaris-server的容器和polaris-console的容器。也创建了名为polaris的Service,暴露了8080 、8090和8091端口,其中8080为控制台提供web服务,8090提供北极星控制面的http服务,8091提供北极星控制面的grpc服务。
- 03-prometheus.yaml:创建名为polaris-prometheus的Deployment,其中包含了两个容器,分别是prometheus和pushgateway。也创建了名为polaris-prometheus的Service,暴露了9090和9091端口,其中9090为prometheus请求端口,9091为pushgateway的请求端口。
安装验证
打开控制台
在浏览器里输入北极星控制台地址(127.0.0.1:8080),非容器化场景127.0.0.1可替换成安装北极星的机器host。
- 登录控制台的默认登录账户信息
用户:polaris
密码:polaris
容器化场景,您需要通过北极星创建的名为polaris的Service来访问控制台,根据您采用的网络方案,有以下几种情况:
- 如果您的k8s集群支持LoadBalancer的Service,并且您直接使用北极星提供的yaml部署,您需要使用polaris Service的EXTERNAL-IP:8080来访问。
- 如果您修改了北极星提供的yaml,使用的是NodePort的Service,您需要使用集群Node的host和polaris Service中8080对应的NodePort来访问。
- 如果您的k8s集群支持Ingress,您需要配置Ingress的backend的serviceName为polaris,并选择servicePort为8080。配置正常后,您可以通过您设置的域名访问。
新建服务
进入服务列表页面,点击【新建】按钮,确认是否可以新建服务。新建服务成功表示安装成功
2 - 集群版安装
集群版组件说明
组件 | 类型 | 功能说明 | 必选/可选 | |
---|---|---|---|---|
polaris | 最新stable版本 | 系统组件 | 服务治理控制面 | 必选 |
polaris-console | 最新stable版本 | 系统组件 | 服务治理控制台 | 必选 |
polaris-limiter | 最新stable版本 | 系统组件 | 分布式限流服务 | 可选 |
MySQL | >= 5.7 |
第三方依赖 | 服务数据存储 | 必选 |
Redis | >=4.0 |
第三方依赖 | 心跳状态数据缓存 | 必选 |
Prometheus | >=2.28.0 |
第三方依赖 | 可观测性 | 可选 |
最小生产组网规格
节点类型 | 节点数量 | 规格要求 |
---|---|---|
polaris-console & polaris | 2 | CentOS 7.5,1C2G,存储10G |
polaris-limiter | 1 | CentOS 7.5,1C2G,存储10G |
MySQL | 1 | 1C2G,存储10G |
Redis | 1 | 1C2G |
Prometheus | 1 | 1C1G |
部署架构
获取最新软件包
可以从以下2个地址下载北极星软件包,请选择最新的release版本:
- Github下载:
- Gitee下载:
安装第三方依赖
部署MySQL
北极星可以与应用程序共用一个数据库,如果有现成MySQL则可以跳过这一步。
安装开源版本MySQL的步骤可参考:MySQL安装
初始数据导入
解压源码包并执行导入:
第一次安装北极星
unzip polaris-$version.zip
cd polaris-$version
mysql -u $db_user -p $db_pwd -h $db_host < store/sqldb/scripts/polaris_server.sql
已有在运行的北极星,执行升级store/sqldb/scripts/delta中的升级脚本
unzip polaris-$version.zip
cd polaris-$version
mysql -u $db_user -p $db_pwd -h $db_host < store/sqldb/scripts/delta/v160-v170.sql
部署Redis
北极星可以与应用程序共用一个Redis,如果有现成Redis则可跳过这一步。
安装开源版本Redis的步骤可参考:Redis安装
安装后,需要设置Redis允许远程主机访问。可以修改redis.conf配置文件:
bind 0.0.0.0
protected-mode no
修改后重启Redis生效。
安装系统组件
部署在kubernetes
修改配置
-
下载软件包:下载polaris-standalone-release_$version.kubernetes.zip,解压后进入polaris-standalone-release_$version.kubernetes目录。
-
配置数据库参数:修改02-polaris-server-config.yaml里面的store配置,去掉boltdbStore相关配置,并放开defaultStore相关配置。
# 存储配置
store:
# 数据库存储插件
name: defaultStore
option:
master:
dbType: mysql
dbName: polaris_server
dbAddr: ##数据库地址,格式为ip:port##
dbUser: ##数据库用户名##
dbPwd: ##数据库密码##
- 开启自动注册:修改02-polaris-server-config.yaml里面的服务自注册配置,将enable_register改成true,并填入probe_address:
bootstrap:
polaris_service:
# 设置为true代表启用自动注册
enable_register: true
# 填入数据库地址,用于获取当前节点ip信息
probe_address: ##数据库地址##
- 配置Redis参数:修改02-polaris-server-config.yaml里面的healthcheck配置,去掉heartbeatMemory相关配置,并放开heartbeatRedis相关配置。
healthcheck:
checkers:
- name: heartbeatRedis
option:
#填入redis的IP以及端口
kvAddr: ##REDIS_ADDR##
#填入redis的密码
kvPasswd: ##REDIS_PWD##
maxIdle: 200
idleTimeout: 120s
connectTimeout: 200ms
msgTimeout: 200ms
concurrency: 200
执行部署
kubectl create -f 00-polaris-namespace-config.yaml
kubectl create -f 01-polaris-console-config.yaml
kubectl create -f 02-polaris-server-config.yaml
kubectl create -f 03-polaris-server.yaml
kubectl create -f 04-prometheus.yaml
kubectl create -f 05-polaris-limiter-config.yaml
kubectl create -f 06-polaris-limiter.yaml
部署在Linux虚拟机
安装polaris
-
下载软件包:下载polaris-server-release_$version.linux.$arch.zip,解压后进入polaris-server-release_$version.linux.$arch目录
-
配置数据库参数:修改polaris-server.yaml里面的store配置,去掉boltdbStore相关配置,并放开defaultStore相关配置。
# 存储配置
store:
# 数据库存储插件
name: defaultStore
option:
master:
dbType: mysql
dbName: polaris_server
dbAddr: ##数据库地址,格式为ip:port##
dbUser: ##数据库用户名##
dbPwd: ##数据库密码##
- 开启自动注册:修改polaris-server.yaml里面的服务自注册配置,将enable_register改成true,并填入probe_address:
bootstrap:
polaris_service:
# 设置为true代表启用自动注册
enable_register: true
# 填入数据库地址,用于获取当前节点ip信息
probe_address: ##数据库地址##
- 配置Redis参数:修改polaris-server.yaml里面的healthcheck配置,去掉heartbeatMemory相关配置,并放开heartbeatRedis相关配置。
healthcheck:
checkers:
- name: heartbeatRedis
option:
#填入redis的IP以及端口
kvAddr: ##REDIS_ADDR##
#填入redis的密码
kvPasswd: ##REDIS_PWD##
maxIdle: 200
idleTimeout: 120s
connectTimeout: 200ms
msgTimeout: 200ms
concurrency: 200
- 启动polaris-discover:
bash ./tool/start.sh
bash ./tool/p.sh
安装prometheus
-
下载软件包:点击下载链接,下载prometheus版本,解压后进入prometheus-2.28.0.linux-amd64目录中。
-
修改配置:打开 prometheus.yml文件,修改prometheus的job配置,增加http_sd_configs,其作用是告知prometheus需要从北极星获取应用的监控上报的地址。
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
http_sd_configs:
- url: http://${polaris部署IP地址}:9000/prometheus/v1/clients
honor_labels: true
- 启动prometheus:
nohup ./prometheus --web.enable-lifecycle --web.enable-admin-api >> prometheus.out 2>&1 &
安装polaris-console
-
下载软件包:下载polaris-console-release_$version.linux.$arch.zip,解压后进入polaris-console-release_$version.linux.$arch目录
-
修改配置:打开polaris-console.yaml文件,修改monitorServer的地址,将原来的127.0.0.1:9090替换成prometheus的监听地址
monitorServer:
address: "${prometheus部署IP地址}:9090"
- 启动polaris-console:
bash ./tool/start.sh
bash ./tool/p.sh
安装polaris-limiter
-
下载软件包:下载polaris-limiter-release_$version.linux.$arch.zip,解压后进入polaris-limiter-release_$version.linux.$arch目录
-
修改配置:打开polaris-limiter.yaml文件,修改polaris-server-address的值为北极星服务端地址。
registry:
enable: true
polaris-server-address: { 北极星服务端 grpc 协议地址 }
name: polaris.limiter
namespace: Polaris
health-check-enable: true
api-servers:
- name: http
option:
ip: 0.0.0.0
port: 8100
- name: grpc
option:
ip: 0.0.0.0
port: 8101
limit:
myid: { 服务端节点唯一标识信息,int 类型}
注意事项:如果是部署单节点的 polaris-limiter,myid 设置为 1 即可;如果是部署多节点的 polaris-limiter,每个节点的 myid 必须保证唯一。
- 启动polaris-limiter:
bash ./tool/start.sh
bash ./tool/p.sh
部署后验证
- 登录控制台的默认登录账户信息。
用户:polaris
密码:polaris
-
访问
http://{控制台IP}:8080
,可以看到登录页面,登录后可以成功看到北极星服务治理控制台内容。 -
执行以下命令,查看 polaris.limiter 服务下的实例信息,是否包含限流服务。
curl --location --request POST '127.0.0.1:8090/v1/Discover' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": 1,
"service": {
"name": "polaris.limiter",
"namespace": "Polaris"
}
}'
FAQ
MySQL 版本支持
- 开源MySQL版本支持:当前仅支持 >= 5.7,低版本暂未支持。
- 云厂商MySQL支持
- 腾讯云:支持 Tencent MySQL版,暂不支持 TDSQL-C MySQL兼容
- 阿里云:支持云数据库RDS MySQL 版